2016-06-21 3 views
0

私は現在、このコードをプロジェクトの一部として修正していますが、必要な作業にはうまく機能しますが、比較的短い移行期間が必要ですが、最初のdiv要素のみが短時間表示され、フェード処理が開始されます。最初のFadeInイベントをスライダで遅らせる方法

誰かが私にこれを訂正するのを手伝ってくれるのだろうかと思っていました。理想的には私はちょうど行うすぐに開始から機能fade()を遅らせるには、最初のスライダーの時間枠を設定したり、プロセスをトリガーするからそれを遅らせ、

var divs = $('.fade'); 

function fade() { 
var current = $('.current'); 
var currentIndex = divs.index(current), 
    nextIndex = currentIndex + 1; 

if (nextIndex >= divs.length) { 
    nextIndex = 0; 
} 

var next = divs.eq(nextIndex); 
    current.stop().fadeOut(500, function() { 
    $(this).removeClass('current'); 
    setTimeout(fade, 5000); 
}); 

next.stop().fadeIn(500, function() { 
    $(this).addClass('current'); 
}); 
} 
fade(); 
+0

最初のフェードコールで 'setTimeout(fade、5000);'を実行できませんでした。 –

+0

どのビットを追加する必要がありますか?このタイプのコーディングのために私のやり方を見つけているのです – mcktj

答えて

0

したいと思います:

var divs = $('.fade'); 

function fade() { 
.... 
} 
setTimeout(fade, 5000); //here is the only change 

あなたのコードの終わりにfade()がすぐに実行されます。タイムアウトを追加するだけです。 5000はミリ秒単位です。希望する遅延時間に切り替えてください。


あなたの質問とは別に、フェード機能をクリックした後でのみオブジェクトに適用したい場合は、これを行うことができます。

$('.fade').on('click',function(){//instead of click you could use any event ex. mouseover 
    fade();//call fade function 
}); 
+0

それは便利なスニペットです。 – mcktj

+0

トップの仕事は@mcktjでした –

+0

はい、魅力のようです。 – mcktj

関連する問題