D'attente pour les images à charger, puis exécuter tout autre code
OK, je vais perdre mon esprit sur ce. J'ai lu ici et DONC google à ce sujet, j'ai même eu le preloader set (trouvé ici), mais aucun de ces plugins/code que j'ai trouvé m'a aidé.
Ce que je veux faire: attendre jusqu'à ce que toutes les images sont préchargés et seulement ensuite exécuter tout autre code javascript. Pour autant que je suis concerné, il peut (mais ne doit pas être) avoir un message "chargement...".
Le fait est que j'ai une assez grande image en arrière-plan du corps et de 2 autres images qui sont également plus grandes, et donc, je tiens à précharger pour qu'ils ne montrent instantanément et n'auraient pas laid "chargement" effet d'image.
C'est ce que j'utilise maintenant, mais il n'est pas bon:
$(document).ready(function()
{
preloadImages();
...some other code...
function preloadImages(){
imagePreloader([
'images/1.png',
'images/2.jpg',
'images/3.png',
]);
}
function imagePreloader(arrayOfImages) {
$(arrayOfImages).each(function(){
(new Image()).src = this;
});
}
}
Je ne sais pas, peut-être que je devrais appeler ce preloader quelque part hors de la .prêt()? ou qqch comme ça, s'il vous plaît aider...
Btw, oui, j'ai aussi lu cette post et je ne sais pas pourquoi mais .prêt() fonctionne plus vite pour moi 🙁
EDIT:
Ok, donc finalement j'ai eu cette chose à travailler. Mon problème? I a été mise en le d'attente div mal. C'est mon code maintenant: j'ai le chargement de la div que je montre au-dessus de tout et puis quand toutes les images de la charge (à l'aide de $(window).load(function(){...}); comme l'a suggéré-je, cacher une div.
<div id="loading">
<div id="waiting">
<img class="loadingGif" src="images/loading.gif">
</div>
</div>
#loading
{
background-size: 100%;
background-color:#000;
width: 100%;
height: 100%;
margin: 0px;
padding: 0px;
z-index:999;
}
#waiting
{
margin-left: auto;
margin-right: auto;
position:absolute;
top: 39%;
left: 27.81%;
width: 45%;
height: 150px;
background-color: #FFF;
border: 12px solid #FF771C;
text-align: center;
}
Et mon code jQuery est ceci:
$(window).load(function()
{
$('#loading').addClass('hidden');
...
}
OriginalL'auteur Nikola | 2011-05-03
Vous devez vous connecter pour publier un commentaire.
Au lieu d'essayer de précontrainte, vous pouvez simplement exécuter votre script sur...
Qui ne mettent pas le feu jusqu'à ce que toutes les images ont été chargées.
Ou la version jQuery:
$(window).load(function(){ ... });
je ne peux pas obtenir que cela fonctionne: je voudrais ne montrent rien (écran blanc vide si vous le souhaitez) jusqu'à ce que toutes mes photos de la charge et de montrer ensuite le rendu de la page. vous pouvez peut-être poster un violon exemple? Merci, je suis vraiment bloqué sur ce 🙁
ah, tant pis, j'ai enfin réussi à le faire fonctionner. Je vous remercie pour votre réponse qui est correcte, mais j'ai été en utilisant le chargement de l'image de mal.
OriginalL'auteur Kevin Ennis
J'ai un plugin nommé waitForImages qui vous permet de connecter un rappel lorsque le descendant d'images ont chargé.
Dans votre cas, si vous voulais attendre pour tous les actifs, à télécharger,
$(window).load()
peut être fine. Mais vous pourriez le faire un peu plus frais avec mon plugin 🙂Voir mise à jour.
Oh oui!, c'est super cool, merci! +1
Ce qui m'a sauvé heures de travail aujourd'hui. En fait, je suis la recherche de toutes sortes d'utilisations.
Heureux qu'il pourrait aider 🙂
OriginalL'auteur alex
Je pense que vous êtes à la recherche pour le javascript est:onLoad(), qui est appelée dès que le navigateur ait fini de charger.
OriginalL'auteur Jeroen Baert
Vous pouvez afficher l'image uniquement une fois qu'il est chargé comme suit :
OriginalL'auteur Tim Joyce
La waitForImages pluggin est intéressante, mais la solution peut être réalisé simplement avec:
OriginalL'auteur Mario Medrano
Je crois que le meilleur jQuery option est d'utiliser de l'ajax obtenir de l'appel:
OriginalL'auteur Serj Sagan