如何清除以setInterval启动的计时器?

时间:2017-04-11 20:58:22

标签: javascript setinterval mouseover clearinterval

我试图让我的图像移动,当我鼠标悬停它然后让它在停止前继续移动3秒钟。我可以让它移动,但不能停止。有任何想法吗?这是我的代码段:

var time = setInterval(timer, 300);

onEvent("image3", "mouseover", function() {
  var x = getXPosition("image3");
  var y = getYPosition("image3");
  while ((getXPosition("image3") = x && getYPosition("image3") = y)) {

  }
});

function timer() {
  setPosition("image3", randomNumber(0, 250), randomNumber(0, 250), 100, 100);
  clearInterval();

}

2 个答案:

答案 0 :(得分:1)

您需要指定使用clearInterval时要清除的时间间隔:

clearInterval(time);

答案 1 :(得分:0)

clearInterval()接受1个参数 - 与要清除的计时器对应的intervalID。

  

intervalID

     

您要取消的重复操作的标识符。此ID由相应的setInterval()调用返回。 1

将变量time传递给对clearInterval()的调用:

clearInterval(time);

见下文所示。

var time = setInterval(timer, 300);
var startTime;

function timer() {
  if (startTime === undefined) {
    startTime = new Date();
  } else {
    diff = (new Date() - startTime) / 1000;
    console.log('timer() - elapsed time: ', diff);
    if (diff >= 3) {
      console.log('clearing interval');
      clearInterval(time);
    }
  }
}

1 <子> https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval