setInterval()与clearInterval()的一个有趣小现象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了setInterval()与clearInterval()的一个有趣小现象相关的知识,希望对你有一定的参考价值。

今天在使用setInterval()时,发现了一个有意思的事情

代码如下:

var box=document.getElementById("box");//获取id为“box”的元素
var t=document.getElementById("top");//获取id为“t”的元素
var b=document.getElementById("bottom");//获取id为“ b”的元素
var a=0;//定义变量a

function fn(){
  box.style.backgroundPosition="0px"+" "+a+"px";//box元素的背景图像定位
  console.log(a);//打印a
  a--;//a自减
  if(a<-958){//如果a小于-957
    clearInterval(aaa);//清除定时器aaa
  }
}

t.onmouseover=function(){//当鼠标悬停在t上时
  clearInterval(aaa);//先清理定时器aaa
  var aaa=setInterval(fn,0);//将定时器命名为aaa;

};

运行后,当a-958时,变量a被清除掉,但是定时器却依然在运行。显示错误aaa未被定义。

以上是关于setInterval()与clearInterval()的一个有趣小现象的主要内容,如果未能解决你的问题,请参考以下文章

js setInterval和clearInterval 的使用

setInterval,为啥只有当 clearInterval 函数高于 setInterval 函数时,计时器才停止?

在javascript中 setInterval()clearInterval()clearTimeout()等等常用的函数的含义

在 setInterval 中调用 clearInterval() 不会停止 setinterval

clearInterval() 函数详解

javascript 用 clearinterval 停止 setinterval