Ich arbeite an einer Jquery-basierten Homepage mit 5 oder mehr versteckten divs, die jeweils mehrere Hintergrund-CSS-Bilder enthalten.versteckte CSS-Bilder laden
Das Problem besteht darin, dass der Browser keine CSS-Bilder in das DOM lädt, bis die Sichtbarkeit der übergeordneten Ebene angezeigt wird. Dadurch werden Bilder langsam geladen, wenn die Ebene sichtbar wird.
Lösungen habe ich bereits in Betracht gezogen:
- CSS-Sprites (zu viel Arbeit für diese neu zu gestalten, und die Arbeit wird nicht wirklich, wenn Ein-/Ausblenden divs)
- This jQuery plugin, dass Auto-Lasten CSS Hintergrund Bilder (funktioniert einfach nicht für mich, wie von vielen anderen berichtet).
Vorbelastung der Bilder über js:
$(function() { function preloadImg(image) { var img = new Image(); img.src = image; } preloadImg('/images/home/search_bg_selected.png'); });
Diese Lösung scheint zweimal das Bild in den dom zu laden ... einmal, wenn die js lädt sie, und dann wieder, wenn die div-Schicht, die es sichtbar lädt wird ... so macht es 2 HTTP-Aufrufe, also funktioniert nicht.
Irgendwelche anderen Lösungen für dieses Problem, die ich vermisse?
Danke für alle Vorschläge! Ich werde es morgen versuchen und sehen, was funktioniert. Ich habe die 1x1 Div-Methode versucht, aber die Rails-App, mit der ich arbeite, weist dem Ende der Image-URL einen Caching-Hash zu ... also behandelt der Browser sie als verschiedene Images wie die in der CSS. – Cory