2011-05-06 51 views
6

我在我的頁面上有各個包含唯一內容的選項卡。我想自動旋轉標籤和內容,而不用點擊它們。只要頁面加載,我希望此功能開始使用window.onload = function()帶時間延遲步進通過陣列

我有以下的JavaScript數組:

var HomeTabs = [1, 3, 5, 7, 9, 11] 

我想知道如何顯示HomeTab 1,持續10秒,然後移動到HomeTab 3,然後經過10秒移到HomeTab 5的順序,不隨機。當它到達HomeTab 11時,它會再次返回HomeTab 1。

我有一個腳本來改變標籤,它是ChangeTab(1),其中一個是我想要顯示的標籤號碼。

回答

12

使用setInterval方法來調用一個函數每十秒鐘:

window.onload = function(){ 

    var HomeTabs = [1, 3, 5, 7, 9, 11]; 
    var index = 0; 

    function nextTab() { 
    ChangeTab(HomeTabs[index]); 
    index = (index + 1) % HomeTabs.length; 
    } 

    nextTab(); 

    window.setInterval(nextTab, 10000); 

}; 
+0

哇,這是使用模運算符一個很好的把戲! – 2011-05-06 14:56:38

+0

這工作完美..非常感謝您的迴應.. – neojakey 2011-05-06 15:07:00

+0

有沒有一種方法可以阻止旋轉..?就像有人點擊一個標籤 – neojakey 2011-05-06 15:26:56

1

你可以隨時使用的setTimeout的功能,像

function startRotating(currentIndex) { 

    // do some checking on currentIndex 

    setTimeout(function(){ 
     startRotating(currentIndex + jump) 
    },10000); 
} 

書面這不會工作,但你可以從那裏展開。