2011-05-06 19 views
6

Tengo pestañas en mi página que contienen contenido único. Quiero rotar automáticamente las pestañas y el contenido sin que se haga clic en ellos. Tan pronto como se cargue la página, quiero que esta función comience a usar window.onload = function().Recorriendo la matriz con retraso de tiempo

Tengo la siguiente matriz de JavaScript:

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

Quiero saber cómo mostrar HomeTab 1 durante 10 segundos y luego se mueven a HomeTab 3 y luego después de 10 segundos se mueven a HomeTab 5 en ese orden, no aleatorio. cuando llega a HomeTab 11 vuelve a HomeTab 1.

Tengo un script para cambiar la pestaña que es ChangeTab(1), donde uno es el número de la pestaña que quiero mostrar.

Respuesta

12

utilizar el método de setInterval llamar a una función cada diez segundos:

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

Wow, eso es un buen truco mediante el operador módulo! –

+0

Esto funcionó perfectamente ... muchas gracias por toda su respuesta. – neojakey

+0

¿Hay alguna manera de detener la rotación ...? como cuando alguien hace clic en una pestaña ... – neojakey

1

siempre se puede utilizar un setTimeout en una función, algo así como

function startRotating(currentIndex) { 

    // do some checking on currentIndex 

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

que no trabajará como está escrito, pero se puede ampliar a partir de ahí.

Cuestiones relacionadas