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



当我将鼠标悬停在图像上时,我试图让我的图像移动,然后在停止之前让它保持移动 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();
}

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

clearInterval(time);

clearInterval(( 接受 1 个参数 - 对应于要清除的计时器的 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);
    }
  }
}


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

最新更新