2015-11-26 35 views
-2

我希望这张幻灯片仍然播放并不停止。就像一个自动循环。那么最好的代码是什么?如果你想编辑它,这里的JsFiddle滑块不会重复

这里的JS代码:

var s = 0, 
    t = 2000; 
$(document).on('ready', slide); 

function slide() { 
    var speed = setTimeout(slider, t,); 
} 

function slider() { 
    s++; 
    var sld = $('#slider li'), 
     imgs = sld.length; 
    if (s == imgs) { 
     s = 0; 
    } 
    sld.eq(s - 1).animate({ 
     'left': '0px' 
    }, t, function() { 
     sld.eq(s).animate({ 
      'left': '0px' 
     }, t, function() { 
      speed = setTimeout(slider, t); 
     }); 
    }); 
} 
+0

_setInterval?_ –

+0

尝试过它,但它仍然不会重复 –

+0

@JohnCena,您的代码缺乏**重置**的逻辑。你可以看到你的setTimeout工作正常。 – kay

回答

0

你的JavaScript改成这样:

var s = 1, t = 3000; 
$(document).on('ready', slider); 

function slider(){ 
    var sld = $('#slider li'), 
     imgs = sld.length; 
    if(s == imgs){ 
     $('#slider li').css('left', ''); 
     s = 1; 
    } 
    sld.eq(s).animate({'left': '0px'}, t, function(){ 
     setTimeout(slider, 1000); 
    }); 
    s++; 
} 

并为您JSFiddle

+0

1.这对你来说顺利吗?第2号。它是否像他做的那样跑?不能。你不能只编辑某人的脚本。 – MortenMoulder

+0

@Snorlax 1.是的,比他快一点,把't'改得更高。 2.它像他所做的那样运行,在“4”后重置为“1”。 3.我认为stackoverflow的目的是编辑人员的scipt使其工作。 – Arg0n

+0

准确@ Arg0n,这对我来说很好!唯一的问题是图像之间的时间要快。谁能告诉我为什么这个帖子downvoted到-4? –