如何停止并将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);
};
我在游戏中使用此计时器,因此根据用户状态,我需要start
,stop
和restart
的时间恢复为0。
答案 0 :(得分:1)
变量 totalSeconds 跟踪您的时间。 函数stopTimer()的名称-也许应该是restartTimer-似乎有点误导,因为您要在那里重新启动计时器,但基本上只是将totalSeconds设置为0,如:
stopTimer = () => {
totalSeconds = 0;
clearInterval(timer);
timer = setInterval(setTime, 1000);
};
答案 1 :(得分:1)
现在发生的是,即使您“重置”了计时器,您的变量也不断增加。
只需添加
totalSeconds = 0;
您的stopTimer
函数。这会将变量重置为零。