Je travaille sur une page d'accueil basée sur jquery avec 5 divs cachés, contenant chacun plusieurs images css en arrière-plan. Le problème est que le navigateur ne charge pas les images css dans le DOM tant que la visibilité de la couche parente n'est pas affichée, provoquant le chargement lent des images lorsque la couche devient visible.précharger les images CSS cachées
Solutions J'ai déjà pris en compte:
- sprites CSS (trop de travail à redessiner pour cela, et la coutume fonctionne vraiment en montrant/cacher divs)
- This jQuery plugin que les images d'arrière-plan CSS auto-des charges (tout simplement ne fonctionne pas pour moi comme rapporté par beaucoup d'autres).
précharger les images via js:
$(function() { function preloadImg(image) { var img = new Image(); img.src = image; } preloadImg('/images/home/search_bg_selected.png'); });
Cette solution semble charger l'image dans le dom deux fois ... une fois que lorsque les charges js, puis à nouveau lorsque la couche div qui charge devient visible ... donc il fait 2 appels HTTP, donc ne fonctionne pas.
D'autres solutions pour ce problème qui me manque?
Merci pour toutes les suggestions! Je vais essayer demain et voir ce qui fonctionne. J'ai essayé la méthode div 1x1 mais l'application rails que je suis en train de travailler assigne un hash de cache à la fin de l'image url ... donc le navigateur les traite comme des images différentes de celles du css. – Cory