我已经在JS中编程了一个基本的MM:SS倒数计时器,一旦剩余的秒数等于零,该计时器应立即停止。
function startTimer() {
let timer = qs("select");
remainingSeconds = timer.options[timer.selectedIndex].value;
let timerDisplay = formatTimer(remainingSeconds);
id("time").innerHTML = timerDisplay;
timerId = setInterval(advanceTimer, 1000);
}
function formatTimer(timeValue) {
let minutes = Math.floor(timeValue / 60);
let seconds = remainingSeconds % 60;
if (minutes < 10) {
minutes = "0" + minutes;
}
if (seconds < 10) {
seconds = "0" + seconds;
}
return minutes + ":" + seconds;
}
function advanceTimer() {
if (remainingSeconds === 0) {
clearInterval(timerId);
//end the game logic here
console.log("times up!");
} else {
remainingSeconds--;
console.log("tick");
id("time").innerHTML = formatTimer(remainingSeconds);
}
}
[我现在遇到的问题是试图使advanceTimer()
函数在剩余的秒数从1减小到0时停止。例如,以3分钟的起始值(180秒)测试该函数时,[C0 ]函数被调用181次,而不是精确的180次。我如何更改函数的行为,以便在剩余秒数变为零时不再再次调用advanceTimer。]
我已经在JS中编程了一个基本的MM:SS倒数计时器,一旦剩余的秒数等于零,该计时器应立即停止。函数startTimer(){let timer = qs(“ select”); missingSeconds ...
尝试在函数外部添加advanceTimer()
声明以保持范围