我这里有一个倒计时器
当到达 0:00 时,我希望它在这里结束并只显示 0:00。但2分钟后又重置了
function startTimer(duration, display) {
var timer = duration, minutes, seconds;
setInterval(function () {
minutes = parseInt(timer / 60, 10);
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
if (--timer < 0) {
timer = duration;
}
}, 1000);
}
window.onload = function () {
var twoMinutes = 60 * 2,
display = document.querySelector('#time');
startTimer(twoMinutes, display);
};
<span id="time">2:00</span>
最佳答案
当间隔达到 0 时,您需要将其清除,而不是重置为持续时间。
注意:你的函数在第一次迭代时似乎有点滞后,这是因为第一次计算与 html 中的值相同。如果这不是故意的,您可以在间隔逻辑之前将计时器值减 1 来修复此问题。
function startTimer(duration, display) {
var timer = duration, minutes, seconds;
var intervalID = setInterval(function () {
minutes = parseInt(timer / 60, 10);
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
if (--timer < 0) {
clearInterval(intervalID)
}
}, 1000);
}
window.onload = function () {
var display = document.querySelector('#time');
startTimer(5, display);
};
<span id="time">0:05</span>
关于javascript - 如何阻止我的 JavaScript 计时器重置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76073442/