2013-08-20 22 views
1

時,我有一個閃爍的動畫在此的jsfiddle時序循環變化的計算機使用其他功能的Jquery

http://jsfiddle.net/upBdw/8/

當你使用它自己的,它工作得很好。我遇到的問題是,當我開始瀏覽網頁,打開iTunes或其他任何你會做的事情時,窗口仍然打開,脈衝的時間開始波動。

爲脈衝的功能是這樣的:

function fadeItIn() { 

    window.setInterval(function(){ 

     // Fade Ins 
     $('#child4,#child4C').fadeIn(175); 
     setTimeout(function() { 
      $('#child3,#child3C').fadeIn(175); 
     }, 175); 
     setTimeout(function() { 
      $('#child2,#child2C').fadeIn(175); 
     }, 350); 
     setTimeout(function() { 
      $('#child1,#child1C').fadeIn(175); 
     }, 525); 
     setTimeout(function() { 
      $('#child,#childC').fadeIn(175); 
     }, 700); 

     // Fade Outs 
     setTimeout(function() { 
      $('#child,#childC').fadeOut(175); 
     }, 875); 
     setTimeout(function() { 
      $('#child1,#child1C').fadeOut(175); 
     }, 1050); 
     setTimeout(function() { 
      $('#child2,#child2C').fadeOut(175); 
     }, 1225); 
     setTimeout(function() { 
      $('#child3,#child3C').fadeOut(175); 
     }, 1400); 
     setTimeout(function() { 
      $('#child4,#child4C').fadeOut(175); 
     }, 1575); 

    }, 3000); 
}; 

我覺得這個問題是在函數裏3秒期間發生。我需要重複的脈衝,所以我需要在那裏。

你們都認爲是什麼導致了這個問題,我該如何解決它?

回答

0

你可以做的一件事是把一組超時放在另一組裏。

現在你有 setTimeout(,time); setTImeout(,time * 2); setTImeout(,time * 3);如果你改變它: setTimeout(... setTimeout(... setTimeout(...,time),time),time);

所以這將確保執行順序。第一個將永遠執行。

+0

哦,我明白你的意思了。像所有3個脈衝一樣放入相同的功能,並排列它們,使它們在第一次正確關閉並重復主要功能。這將使得時機永不脫落。對? – YeahMKD

+0

我的意思是第一個超時函數會做它的事情,然後調用第二個超時(從第一個超時函數)。第二個超時函數將完成它的事情,然後調用第三個超時設置。第三將做它的事情,然後打電話給第四等。 喜歡的東西 的setTimeout(泛函(){//做的東西。 的setTimeout(functionB(){/// 做的東西 setTimout(functionC(){// 做的東西 },時間) ,時間) ,時間) – Yogesh

+0

我只是這樣做,它並沒有解決我的問題。 – YeahMKD