2011-10-28 47 views
0

以下代碼創建一個動畫幻燈片。我們如何將它變成一個無限循環,即IE:以便它可以返回到最後的第一張幻燈片。JQuery每個函數創建無限循環

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

回答

0

羅賓耐特,

你可以使用JavaScript的setTimeout函數創建一個無限循環。

瞭解更多here

如果您不想任何暫停,請相應地設置超時時間。

你也可以把你的每一個成一個,而(真){}

希望這有助於。

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

而當你想停止

clearInterval(interval); 

的setInterval將是最好的方式,執行功能各5000毫秒

+0

你不應該使用使用'eval'的setInterval'的'版本。 –

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); 

希望這有助於你的情況:)