2013-06-02 102 views
0

我目前正在建設測試網站的中間,以幫助我更好地理解編碼並嘗試更好地掌握它們是如何結合在一起的。將setTimeout交換到setinterval,任何人都可以幫我解決這個問題

我的問題是這樣的 - 我有一段引用的網站,他們淡入,然後向上滑出視圖顯露一個新的報價。 這是我犯的錯誤。我已經完全設置好了,這樣它可以在所有引號中循環...但是然後停下來。我會愛他們重複。我知道我的錯誤是使用.setTimeout函數,而不是setInterval代碼。

我的問題是這樣的,有一個簡單的解決方案,以交換代碼,它是我花了好一會兒來包裝我的頭解決這個笑

下面是代碼給你看。任何幫助將不勝感激。

$(function(){ 
setTimeout(function() 
    { 
    $("#jobs_1").slideUp(800); 
    }, 4000); 
}); 
$(function(){ 
setTimeout(function() 
    { 
    $("#jobs_2").fadeIn(400); 
    }, 4800); 
}); 
$(function(){ 
setTimeout(function() 
    { 
    $("#jobs_2").slideUp(800); 
    }, 8000); 
}); 
$(function(){ 
setTimeout(function() 
    { 
    $("#jobs_3").fadeIn(400); 
    }, 8800); 
});  
$(function(){ 
setTimeout(function() 
    { 
    $("#jobs_3").slideUp(800); 
    }, 12000); 
}); 
$(function(){ 
setTimeout(function() 
    { 
    $("#jobs_4").fadeIn(400); 
    }, 12800); 
}); 
$(function(){ 
setTimeout(function() 
    { 
    $("#jobs_4").slideUp(800); 
    }, 16000); 
}); 
$(function(){ 
setTimeout(function() 
    { 
    $("#jobs_1").fadeIn(400); 
    }, 16800); 


});  

非常感謝

+0

究竟什麼是你的問題?如何以最快的速度替換所有出現的'setTimeout'? –

+0

問題是我想我的報價重複,但因爲即時通訊使用setTimeout他們停止在最後,我怎樣才能settimeout換setinterval並讓它工作。對不起,如果我沒有描述它完美即時通訊仍然在學習我自己 – user2445082

回答

0

您可以將所有的塊名進入堆棧,並使用一個單一的功能:

var blocks = ['jobs_1', 'jobs_2', 'jobs_3', 'jobs_4']; 
var curentBlockIndex = 0; 
setInterval(function(){ 
    var nextBlockIndex = curentBlockIndex + 1; 
    if (nextBlockIndex >= blocks.length) nextBlockIndex = 0; 
    $('#' + blocks[curentBlockIndex]).slideUp(800, function(){ 
     $('#' + blocks[nextBlockIndex]).fadeIn(400); 
    }); 

    curentBlockIndex = nextBlockIndex; 
}, 4000); 
+0

This Works Perfectly !!!謝謝。 – user2445082

+0

歡迎您:) – claustrofob

0

這會幫助你。怎麼運行的? 您將當前的作業計數器設置爲0.然後,使用setInterval,每3秒鐘運行一次主函數,這會增加作業計數器。如果計數器超過4(你的上一份工作),隱藏工作4並淡入第一個。否則滑出以前的工作並淡入新的工作。

$(function(){ 
    count = 1; 

    x = setInterval(function(){ 
     count++; 
     if(count > 4) { 
      $('jobs_4').hide(function(){ 
       $('#jobs_1').fadeIn(); 
      }); 

      count = 1 
     } else { 
      $('#jobs_' + (count-1)).slideUp(function(){ 
       $('#jobs_' + (count-1)).fadeIn(); 
      }); 
     } 

    }, 3000); 
} 
+0

我想我明白了,對不起,我是一個完整的假人,所有這一切,我仍然試圖把我的頭圍繞着這一切。我會測試這一點,我會公佈結果。謝謝! – user2445082

相關問題