Вот код, который я сделал для анимации изображений с использованием jQuery:
var enter = 500;
var show = 4000;
var exit = 300;
var direction1 = "right";
var direction2 = "left";
var logo = document.getElementById('Box1').getElementsByTagName('img');
var Num = $('#Box1 img').length;
var time_each = (enter+show+exit);
function startBox1(){
for(x=0;x<=Num-1;x++){
Box1(x);
}
}
function Box1(x){
var buffer = time_each*x;
$(logo[x]).delay(buffer).show("slide", { direction: direction1 }, enter).delay(show).hide("slide", { direction: direction2 }, exit);
}
$(function(){
startBox1();
setInterval("startBox1()",(time_each)*Num);
});
Хитрость заключалась в том, чтобы установить буфер, который равнялся времени, затрачиваемому для каждой анимации, по индексу текущей анимации.Цикл FOR
запускает каждый код немедленно;действие .delay()
и переменная буфера заставляют его выглядеть так, как будто каждая анимация происходила одна за другой.Затем setInterval()
вызывает цикл FOR
после завершения каждой анимации.Он непрерывно перезапускает процесс.