retarder le chargement d'une certaine image d'arrière-plan css
dans un CSS comme ceci :
...
#big-menu {
background: #fff url(../images/big-menu.jpg) no-repeat;
}
#some-menu {
background: #fff url(../images/some-menu.jpg) no-repeat;
}
#some-other-menu {
background: #fff url(../images/some-other-menu.jpg) no-repeat;
}
...
est-il un moyen de retarder le chargement de #big-menu
s'image d'arrière-plan, afin qu'il se charge après tout le reste, y compris toutes les images dans le HTML, et tous les autres fond de CSS (le some-menu
et some-other-menu
).
La raison en est, big-menu.jpg est très lourd en taille, et je veux qu'il soit chargé en dernier. Après tout, il sert juste comme un eye-candy, et il y a d'autres images de fond qui ont une meilleure utilisation que. (tels que ceux utilisés dans les boutons)
L'ordre de le mettre dans le CSS ou les occurrences du balisage (#big-menu
) en HTML eu quelque chose à voir avec ce qui est chargé en premier ? ou est-il un moyen plus fiable pour contrôler ? javascript (jQuery de préférence) c'est bien.
- Salut andy !
Vous devez vous connecter pour publier un commentaire.
De la commande dans le css n'a pas le contrôle, dont les ressources sont chargés en premier, mais ne touchent ce style existant est écrasé ou hérité.
Essayer le JavaScript événement onload. L'événement s'exécute seulement une fois que la page est la fin du chargement.
Ce ne serait pas une solution parfaite(comme c'est un css-fond et non d'une image), mais YUI chargeur d'Image fournit un bon moyen de chargement différé des images.
Créer un groupe
Après le document est chargé, de l'image à charger 2 secondes après. Voir Yahoo! Briller ou la exemples pour la démo.
Une autre solution est de diviser vos actifs dans différents domaines, les navigateurs ne demande deux actifs à temps, puis d'attendre pour qu'une personne soit chargée avant de commencer le suivant. Vous pouvez observer ce avec Firebug et YSlow, plaçant la valeur de certains actifs sur images.example.com et images1.example.com et voir si cela a un impact
Je ne pense pas que le placement dans la styelsheet sera l'impact, comme l'ordre des éléments qui leur sont appliquées décidera de l'image qui va être chargé en premier.
Vous pouvez utiliser jQuery pour charger les images dans le bon ordre, bien que
EDIT:
Ok, alors peut-être lieu d'ajouter une classe, une meilleure solution consisterait à ajouter le fond les images dans l'exécution.
De contrôle lorsqu'une image est chargée dans le CSS n'est pas vraiment possible. Vous pouvez essayer de le mettre tout en bas de votre feuille de style, mais je doute que vous verrez une amélioration.
L'ordre de téléchargement ne peut pas être contrôlé à l'aide de css. Cependant, vous pouvez utiliser javascript pour atteindre cet objectif.
Bien que n'étant pas directement liées à la question peut-être avant de faire cela, vous devriez optmize l'image à l'aide de fusion.il ou votre image préférée du programme je trouve que les images jpeg à l'air très bien lors de l'enregistrement à la qualité de 85%. Expérience et n'oubliez pas de configurer votre serveur web pour mettre en cache les images pendant de longues périodes et puis le problème étant que la première fois que vos utilisateurs vont sur le site.
Jason Javascript astuce a fonctionné pour moi dans la résolution de ce problème. Cependant, j'ai dû corriger la syntaxe légèrement: