191 votes

Comment puis-je vérifier si une image d'arrière-plan est chargée?

Je veux définir une image d'arrière-plan sur la balise body, puis exécuter du code - comme ceci:

 $('body').css('background-image','http://picture.de/image.png').load(function() {
    alert('Background image done loading');
    // This doesn't work
});
 

Comment puis-je m'assurer que l'image d'arrière-plan est complètement chargée?

316voto

jcubic Points 11141

essaye ça:

 $('<img/>').attr('src', 'http://picture.de/image.png').load(function() {
   $(this).remove(); // prevent memory leaks as @benweet suggested
   $('body').css('background-image', 'url(http://picture.de/image.png)');
});
 

23voto

alex Points 186293

J'ai un plugin jQuery appelé waitForImages qui peut détecter le téléchargement des images d'arrière-plan.

 $('body')
  .css('background-image','url(http://picture.de/image.png)')
  .waitForImages(function() {
    alert('Background image done loading');
    // This *does* work
  }, $.noop, true);
 

19voto

adrian Points 617

Il n'y a pas de callback JS pour les actifs CSS.

16voto

Colin Points 401
Car:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X