Comment changer de fond tous les 5 s

J’ai l’image background.jpg comme arrière-plan. Toutes les 10 secondes, comment charger un nouveau fond background_n.jpg qui rest pendant 100 ms, puis revenir à background.jpg et ainsi de suite?

 function change_background( new_image_source ) { var myimage = $( '#myimage' ); myimage.attr( 'src', new_image_source ); setTimeout( function () { change_background( 'new image source here' ); }, 10000); } 

Voici un exemple (qui n’a pas besoin de jQuery pour fonctionner):

 var rotate = false; function setbackground(){ window.setTimeout( "setbackground()", 5000); newImage = rotate ? 'url(pict1.jpg)' : 'url(pict2.jpg)'; rotate = !rotate; document.getElementById('change').style.backgroundImage = newImage; } 

Cordialement,

Max

Utilisez setInterval et setTimeout

 window.setInterval(function(){ window.setTimeout(function(){ $('div').css('background-image','url(background.jpg)'); },100); $('div').css('background-image','url(background_n.jpg)'); },10000); 

exemple: http://jsfiddle.net/niklasvh/M56A6/

  • Vous pouvez utiliser setTimeout(function, timeout) (fonction Javascript simple) pour définir une function (que vous pouvez définir) à exécuter après le timeout millisecondes.

    Par exemple (l’alerte sera affichée après 10 secondes):

     setTimeout(function () { alert('I am running!'); }, 10000); 
  • Vous pouvez changer le fond d’un élément avec:

     $(element).css('background-image', 'url(xy.jpg)') 
  • Assurez-vous de précharger vos images d’arrière-plan avant de les utiliser.

  • Je vous déconseille d’utiliser setInterval() pour cela (pour de si petits intervalles, cela pourrait s’emstackr), utilisez une chaîne de setTimeout() s pour configurer l’action répétée.

Vous pouvez utiliser setInterval pour exécuter une fonction toutes les n secondes et setTimeout pour le code qui modifie l’image d’arrière-plan:

 window.setInterval(function(){ $('body').css('backgroundImage', 'url(background_n.jpg)'); window.setTimeout(function(){ $('body').css('backgroundImage', 'url(background.jpg)'); }, 100); }, 10 * 1000); 

Utilisez la fonction setTimeout() ou jQuery de javascript

 d = new Date(); $("#myimg").attr("src", "/myimg.jpg?"+d.getTime());