2011-09-10 65 views
1

我有4个函数在setInterval(tscrolls)上运行,只要文档加载完成,每隔几秒钟就会为div的顶部位置设置动画。暂停正在运行的setInterval函数?

var intervalFunctions = [ tScroll1, tScroll2, tScroll3, tScroll4 ]; 
var intervalTimer = 3000; 
window.setInterval(function(){ 
    intervalFunctions[intervalIndex++ % intervalFunctions.length](); 
}, intervalTimer); 

有没有办法在mouseenter或hover上暂停这个?

+0

可能的重复[如何在JavaScript中暂停windows.setInterval?](http://stackoverflow.com/questions/7279567/how-do-i-pause-a-windows-setinterval-in-javascript) –

回答

7

最简单的是修改代码来引用一个变量(在这里,hold),它被设置在鼠标悬停和鼠标移开时清零:

window.setInterval(function(){ 
    if(hold) { 
     return; 
    } 
    intervalFunctions[intervalIndex++ % intervalFunctions.length](); 
}, intervalTimer); 

这种做法将让你最的方式,和如果你想达到特定的行为,你可以调整它的口味。

+0

+1:我认为这种'hold'方法比使用'clearInterval'更好,然后用'setInterval'重新启动它。 – nnnnnn