2015-11-26 36 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? –