如何停止和重置setInterval计时器

时间:2019-05-25 12:32:28

标签: javascript timer setinterval clearinterval

如何停止并将setInterval计时器重置为00:00?

设置clearInterval(timer);可以停止时间,但是我不知道如何将时间值重置回00:00。

我在这里:

HTML

<span class="timer">
  <label id="minutes">00</label>:<label id="seconds">00</label>
</span>

JS

const minutesLabel = document.getElementById("minutes");
const secondsLabel = document.getElementById("seconds");
let timer = setInterval(setTime, 1000);

function setTime() {
  ++totalSeconds;
  secondsLabel.innerHTML = pad(totalSeconds % 60);
  minutesLabel.innerHTML = pad(parseInt(totalSeconds / 60));
}

function pad(val) {
  let valString = val + "";
  if (valString.length < 2) {
    return "0" + valString;
  } else {
    return valString;
  }
}

stopTimer = () => {
  clearInterval(timer);
  timer = setInterval(setTime, 1000);
};

我在游戏中使用此计时器,因此根据用户状态,我需要startstoprestart的时间恢复为0。

2 个答案:

答案 0 :(得分:1)

变量 totalSeconds 跟踪您的时间。 函数stopTimer()的名称-也许应该是restartTimer-似乎有点误导,因为您要在那里重新启动计时器,但基本上只是将totalSeconds设置为0,如:

stopTimer = () => {
  totalSeconds = 0;
  clearInterval(timer);
  timer = setInterval(setTime, 1000);
};

答案 1 :(得分:1)

现在发生的是,即使您“重置”了计时器,您的变量也不断增加。

只需添加

totalSeconds = 0;

您的stopTimer函数。这会将变量重置为零。