Vérifier que tous les images ont chargé est un peu complexe, donc, sauf si vous avez un besoin urgent d'être si précis, il est beaucoup plus facile de vérifier que toutes les images et tout le reste est chargé:
$(window).load(function(){...});
Cela rend l'utilisation de jQuery .charger() méthode.
Si vous ne vraiment besoin de vérifier uniquement les images, les choses deviennent un peu plus délicat. J'ai d'abord voulu faire cela:
$("img").load(function(){...}); \\ THIS IS INCORRECT!!!!!
Cependant, le ci-dessus crée un objet jQuery qui contient toutes les images, puis il se lie function() { ... } à chaque de ces images. Ce qui est au dessus de déclencher une fonction autant de fois qu'il y a des images sur la page!
Pour contourner ce problème, nous devons vérifier le nombre d'images sur la page, et que feu la fonction une fois, après toutes ces images ont été chargées:
$(function(){//To keep track of how many images have loadedvar loaded =0;//Let's retrieve how many images there arevar numImages = $("img").length;//Let's bind a function to the loading of EACH image
$("img").load(function(){//One more image has loaded++loaded;//Only if ALL the images have loadedif(loaded === numImages){//This will be executed ONCE after all images are loaded.function(){...}}});});
Depuis il voulait seulement après tous les images sur la page ont été chargés, je ne pense pas que cela peut poser un problème. Même si toutes les images sont chargées à partir de la mémoire cache du navigateur (comme pour une page précédemment visitée)? Je ne suis pas tout à fait sûr de savoir comment les load est déclenchée dans ces cas. J'imagine donc. Il y aurait encore d'autres ressources pour le navigateur à charger et une fois qu'ils sont chargés, à l'événement load de la fenêtre sera déclenché. Même si chaque ressource externe est mis en cache, j'imagine qu'il en sera toujours tiré une fois que la page elle-même est faite de chargement. Je n'ai pas encore entendu parler de la charge de cas ne se déclenche pas, en tout cas valide. vieux thread, mais je trouve cela utile pour vérifier si toutes les images sont chargées après les requêtes ajax. merci!
Heh, je n'avais pas réalisé ce qu'est une douleur c'est. Cependant, vous pouvez supprimer une ligne en utilisant $("img").load() au lieu de $("img").each(function() { $(this).load() })- Voir mon édité réponse.
Pour toute personne utilisant jquery ce petit extrait fait le tour (il s'assure que toutes les images sont chargés avant tout de script à l'intérieur d'exécution)...
$(window).bind("load",function(){//code goes here here});
OriginalL'auteur meder omuraliev
Vérifier que tous les images ont chargé est un peu complexe, donc, sauf si vous avez un besoin urgent d'être si précis, il est beaucoup plus facile de vérifier que toutes les images et tout le reste est chargé:
Cela rend l'utilisation de jQuery .charger() méthode.
Si vous ne vraiment besoin de vérifier uniquement les images, les choses deviennent un peu plus délicat. J'ai d'abord voulu faire cela:
Cependant, le ci-dessus crée un objet jQuery qui contient toutes les images, puis il se lie
function() { ... }
à chaque de ces images. Ce qui est au dessus de déclencher une fonction autant de fois qu'il y a des images sur la page!Pour contourner ce problème, nous devons vérifier le nombre d'images sur la page, et que feu la fonction une fois, après toutes ces images ont été chargées:
jsFiddle exemple
Même si toutes les images sont chargées à partir de la mémoire cache du navigateur (comme pour une page précédemment visitée)? Je ne suis pas tout à fait sûr de savoir comment les
load
est déclenchée dans ces cas.J'imagine donc. Il y aurait encore d'autres ressources pour le navigateur à charger et une fois qu'ils sont chargés, à l'événement load de la fenêtre sera déclenché. Même si chaque ressource externe est mis en cache, j'imagine qu'il en sera toujours tiré une fois que la page elle-même est faite de chargement. Je n'ai pas encore entendu parler de la charge de cas ne se déclenche pas, en tout cas valide.
vieux thread, mais je trouve cela utile pour vérifier si toutes les images sont chargées après les requêtes ajax. merci!
OriginalL'auteur Peter Ajtai
$("img").load()
au lieu de$("img").each(function() { $(this).load() })
- Voir mon édité réponse.OriginalL'auteur
J'ai fait quelque chose comme ça récemment, mais est allé à ce sujet différemment.
OriginalL'auteur renaekathleen
Pas une réponse directe. Encore la peine de renvoi.
Reportez-vous
Code
OriginalL'auteur Lijo
@Pierre Ajtai réponse, sauf sur IE images mises en cache. Pour le faire fonctionner avec IE, voici une solution: https://stackoverflow.com/a/3877079 ou à l'aide de la imagesLoaded plugin.
OriginalL'auteur Ramil
Pour toute personne utilisant jquery ce petit extrait fait le tour (il s'assure que toutes les images sont chargés avant tout de script à l'intérieur d'exécution)...
OriginalL'auteur NSCoder