暂停正在运行的setInterval函数

Pause a running setInterval function?

本文关键字:setInterval 函数 运行 暂停      更新时间:2023-09-26

我有4个函数在setInterval (tscroll)上运行,它只是在文档加载后每隔几秒动画一个div的顶部位置。

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

是否有方法在鼠标进入或悬停时暂停此操作?

最简单的方法是修改代码以引用一个变量(这里是hold),该变量在mouseover时设置,在mouseout时清除:

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

这种方法会让你得到大部分的方式,如果你想达到特定的行为,你可以调整它的味道。