J'ai créé 3 éléments div et j'ai besoin d'un ensemble d'images pour passer les boîtes en les déplaçant une par une en affichant une image dans une case, puis la suivante, puis la suivante toutes les 5 secondes sur une boucle infinie. Je souhaite que les images disparaissent l'une après l'autre (une demi-seconde d'intervalle avant de déclencher le fondu de la case suivante), de sorte qu'elles semblent s'évanouir en cascade, je souhaite que le fondu ne dure qu'une seconde, puis la nouvelle image à l'intérieur de cette case à fondre, prenant environ une seconde pour le faire, et la case suivante déclenchant un fondu avec une demi-seconde d'intervalle.Comment mettre en cascade des animations dans jquery
Je les ai en boucle, mais pas en cascade, quelqu'un peut-il me fournir une solution au problème? Voici mon code actuel:
<div id="box1"></div><div id="box2"></div><div id="box3"></div>
<script type="text/javascript">
//<![CDATA[
var test = ['img1.jpg','img2.jpg','img3.jpg'];
function loopImages()
{
// swap image positions in array
var fimg = test.shift();
test.push(fimg);
for (a in test) {
var newimage = $('<img />').attr('src',test[a]);
var currbox = $('#box' + (Math.floor(a)+1));
//first fade out
currbox.find('img').fadeTo('slow',0);
// then add new image
currbox.empty().append(newimage);
}
// loop every 5 seconds
setTimeout("loopImages()",5000);
}
loopImages();
//]]>
</script>
Salut Nick, j'ai essayé cet exemple, mais il semble que les deux premières cases sont effacées après la première boucle, il est seulement la troisième boîte qui boucle, et il ne se fane pas, il retourne juste entre les images – Paul
@Paul - ma faute, c'est la référence 'curbox' qui est partagée, essayez le code mis à jour ci-dessus. –
Nick, Merci pour cela, ça a certainement aidé à faire le tri, il y avait un bug étrange, il semble que lorsque l'image s'est estompée et que le callback a été déclenché, la variable newimage a été écrasée et est toujours résultat de la toute dernière boucle (i == test.length) donc, pour surmonter le problème, j'ai créé un tableau au début du script (appelons-le témoignages) et stocké $ ('') .attr ('src ', test [i]) dans les témoignages [i]. Je vais poster ma solution, c'est un peu un hack moche, mais semble fonctionner sans heurt – Paul