JQuery每个函数都创建无限循环

时间:2011-10-28 13:22:59

标签: jquery each infinite-loop

以下代码创建动画幻灯片。我们如何将它变成一个无限循环,IE:这样它就会回到最后一个末尾的第一张幻灯片。

$(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 :(得分:0)

罗宾奈特,

您可以使用Javascript的setTimeout函数创建无限循环。

了解更多here

如果您不想暂停,只需相应地设置超时时间。

你也可以把你的每一个都放进去(真实){}

希望这有帮助。

答案 1 :(得分:0)

var interval = setInterval ( "doSomething()", 5000 );

当你想要停止时

 clearInterval(interval);

setInterval是最好的方法,每5000毫秒执行一次函数

答案 2 :(得分:0)

您可以尝试以下代码。最初根据总时间调用超时,然后您可以继续以无限循环重置当前幻灯片编号。

$('.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);

希望这有助于您的情况:)