2011-10-28 8 views
0

次のコードはアニメーションスライドショーを作成します。 IEを無限ループにするにはどうすればいいのでしょうか?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); 

・ホープこれはあなたの場合に役立ちます:)

関連する問題