Dans jQuery, quand vous faites ça :
$(function() {
alert("DOM is loaded, but images not necessarily all loaded");
});
Il attend que le DOM se charge et exécute votre code. Si toutes les images ne sont pas chargées, elle exécute quand même le code. C'est évidemment ce que nous voulons si nous initialisons un élément du DOM, comme afficher ou cacher des éléments ou attacher des événements.
Disons que je veux une animation et que je ne veux pas qu'elle soit lancée avant que toutes les images soient chargées. Existe-t-il un moyen officiel de faire cela dans jQuery ?
Le meilleur moyen que j'ai trouvé est d'utiliser <body onload="finished()">
mais je ne veux pas vraiment faire ça à moins d'y être obligé.
Remarque : Il existe un bogue dans jQuery 1.3.1 dans Internet Explorer qui attend en fait que toutes les images soient chargées avant d'exécuter le code à l'intérieur $function() { }
. Ainsi, si vous utilisez cette plateforme, vous obtiendrez le comportement que je recherche au lieu du comportement correct décrit ci-dessus.
3 votes
N'a pas
$("img").load()
travail ?1 votes
Je pense qu'il est utile de mentionner que si vous définissez les attributs de dimensions, vous pouvez exécuter en toute sécurité du code dans la fonction prête qui repose sur ces dimensions. Avec php, vous pouvez les saisir avec php.net/manual/fr/function.getimagesize.php lors du téléchargement pour les stocker dans la base de données ou avant la sortie vers le navigateur.
0 votes
Si vous voulez quelque chose qui fasse un travail incroyable, alors consultez la très bonne et populaire bibliothèque javascript imagesloaded mentionnée dans la réponse ci-dessous. stackoverflow.com/a/26458347/759452
0 votes
"Je suis venu ici pour trouver tout sauf une voie officielle."