JQuery каждая функция создает бесконечный цикл - PullRequest
0 голосов
/ 28 октября 2011

Следующий код создает анимационное слайд-шоу.Как бы мы превратили его в бесконечный цикл, т.е. чтобы он возвращался к первому слайду в конце последнего.

$(document).ready(function(){

    $('.sismain a').css('opacity', 0);

    var slideqnt = $('.sismain a').length;
    var slidecur = 0;
    var slidelay = 0;
        $('.sismain a').each(function(){
            $(this).delay(slidelay).animate({opacity: 1,  leaveTransforms:true}, {duration:2000, queue:true});
            slidelay += 6000;
            $(this).delay(slidelay).animate({opacity: 0,  leaveTransforms:true}, {duration:2000, queue:true});
        });
});

Ответы [ 3 ]

0 голосов
/ 28 октября 2011
var interval = setInterval ( "doSomething()", 5000 );

А когда хочешь остановиться

 clearInterval(interval);

setInterval будет лучшим способом, выполняйте функцию каждые 5000 миллисекунд

0 голосов
/ 28 октября 2011

Вы можете попробовать приведенный ниже код.Сначала вызовите тайм-аут, основанный на общем времени, затем позже вы сможете продолжать сбрасывать текущий номер слайда в бесконечном цикле.

$('.sismain a').css('opacity', 0);
    var slideqnt = $('.sismain a').length;
    var slidecur = 0;

    function nextSlide(){
    $('.sismain a').eq(slidecur).animate({opacity: 1,  leaveTransforms:true}, {duration:2000, queue:true});
    $('.sismain a').delay(2000).eq(slidecur).animate({opacity: 0,  leaveTransforms:true}, {duration:2000, queue:true});

    if(++slidecur==slideqnt){
        slidecur=0;
    }
    setTimeout(nextSlide,6000);
}

setTimeout(nextSlide,6000);

Надеюсь, это поможет вам:)

0 голосов
/ 28 октября 2011

Робин Найт,

Вы можете использовать функцию setTimeout в Javascript для создания бесконечного цикла.

Подробнее здесь .

Если вам не нужна пауза, просто установите время ожидания соответственно.

Вы также можете поместить своего каждого в какое-то время (правда) {}

Надеюсь, это поможет.

...