Informatie over css, (x)html, photoshop, php, sql, seo, jquery en meer…
21 feb 2008
Ik kom nog best veel websites tegen waar mouseover images in bijv. menu’s door middel van javascript gezet worden.
Ik kan me voorstellen dat dit gedaan wordt omdat je op die manier images kunt preloaden en dus geen knipper effect
krijgt wanneer een bezoeker voor de eerste keer over de button heen gaat. Dit kun je echter ook met css oplossen.
Over css
Feit is en blijft dat je met css geen images kunt preloaden. Je kan er wel op een andere manier voor zorgen dat
images niet moeten laden op het moment dat de mouseover aangeroepen wordt. Ik zal dit aan de hand van enkele
voorbeelden uit gaan leggen.
De afbeeldingen
Voor een mouseover gebruik je meestal 2 afbeeldingen, de knop en de mouseover van de knop.
Ik heb even 2 simpele afbeeldingen gemaakt die de knop en de mouseover voor moeten stellen.
![]()
![]()
Op de oude manier zou je dus de volgende html/css kunnen gebruiken:
[CSS]
Op deze manier werkt het gewoon goed, alleen het nadeel is dus dat het mouseoverplaatje pas ingeladen
wordt op het moment dat iemand met zijn muis over de a href gaat (hierdoor onstaat dus het knipper effect).
De oplossing
We maken van de button en de mouseover 1 afbeelding.
In deze afbeelding gaan we bovenaan de normale button zetten en onderaan de mouseover button. Je krijgt dan
ongeveer zoiets als hieronder:
![]()
de html die we al gebruikte kan hetzelfde blijven, de css passen we iets aan:
[CSS]
Op deze manier is dus al meteen de button en de mouseover ingeladen. Op het moment dat de mouseover
aangeroepen wordt schuiven de afbeelding dus alleen maar naar beneden. waardoor je de mouseover ziet.
Conclusie
Het preloaden van afbeeldingen in css kan ECHT NIET! Maar… we kunnen het effect van het preloaden
wel simuleren.
De voordelen van deze mouseovers zijn :
7 Responses for "Het preloaden van images in css"
Heey Martijn,
ben op je blog beland. Zet er eens wat goede tutorials op waar ik wat van kan leren ;)!
Verder nog hard aan het werk?
Gr. Roel
vanwaar die:
text-indent: -9999px;
Ruben:
Zoals je in het stukje html kan zien wordt er in de html gewoon een tekstlink geplaatst.
Om er nou voor te zorgen dat die tekst niet bovenop de achtergrond afbeelding komt te staan gaan we die dus indenten op -9999px. zo valt de tekst altijd buiten het scherm.
Had ik al eens ergens gelezen, mooie tut
ps: nog beter is een image hover zonder javascript :p
@Joren: dit is toch een image hover zonder javascript of zie ik iets over het hoofd?
Niet goed gelezen :p, ik dacht dat het 1 met javascript was en dat je de afbeeldingen da inlaad met css :p
Volgens mij kan het wel d.m.v. CSS:
.hiddenPic {
display: none;
}
HTML:
Leave a reply
You must be logged in to post a comment.