我正在尝试让我的倒数计时器停止在零并显示完毕。由于某种原因,我无法让它在0:00停止。
var timer = 10;
var secondsRemaining;
var interval = setInterval(myTimer, 1000);
function convertSeconds(timer) {
var min = Math.floor(timer / 60);
var sec = timer - min * 60;
//add a leading zero (as a string value) if seconds less than 10
if (sec < 10) {
sec = "0" + sec;
}
return min + ":" + sec;
}
//
function myTimer() {
document.getElementById("timer").innerHTML = convertSeconds(timer);
timer--;
if (timer <= 0) clearInterval(interval);
}
答案 0 :(得分:1)
更改以下语句:
if (timer <= 0) clearInterval(interval);
到
if (timer < 0) clearInterval(interval);
是您需要的吗?
答案 1 :(得分:1)
您可以尝试此操作,只需编辑if条件
var timer = 10;
var secondsRemaining;
var interval = setInterval(myTimer, 1000);
function convertSeconds(timer) {
var min = Math.floor(timer / 60);
var sec = timer - min * 60;
//add a leading zero (as a string value) if seconds less than 10
if (sec < 10) {
sec = "0" + sec;
}
return min + ":" + sec;
}
//
function myTimer() {
document.getElementById("timer").innerHTML = convertSeconds(timer);
timer--;
if (timer < 0) clearInterval(interval);
}
答案 2 :(得分:0)
我更改了代码的这一部分。
function myTimer() {
document.getElementById("timer").innerHTML = convertSeconds(timer);
timer--;
if (timer <= 0) clearInterval(interval);
}
到
function myTimer() {
document.getElementById("timer").innerHTML = convertSeconds(timer);
if (timer-- <= 0) clearInterval(interval);
}
检查时间是否为零,它仍将执行最后的间隔0秒,然后递减。
答案 3 :(得分:0)
我知道,这里已经有很多答案了,但是也许某个人仍然对此很感兴趣。通过将以前的全局变量放入myTimer()
函数的局部范围,我对代码进行了一些更改。现在,可以使用此新的myTimer()
函数来启动单独的独立计时器。
“少写,多做”
myTimer('timer',10,1000);
myTimer('t2',20,600);
function myTimer(domId,time,intv){
var trgt=document.getElementById(domId),
timer=time,
self=setInterval(function(){
trgt.innerHTML=Math.floor (timer / 60)+':'+(''+timer%60).padStart(2,'0');
if (!timer--) clearInterval(self);
},intv);
}
<div id="timer"></div>
<div id="t2"></div>
答案 4 :(得分:-1)
尝试
var timer = 10;
var secondsRemaining;
var interval = setInterval(myTimer,1000);
function convertSeconds(timer)
{
var min = Math.floor (timer / 60);
var sec = timer - (min * 60);
//add a leading zero (as a string value) if seconds less than 10
if (sec < 10) {
sec = "0" + sec;
}
return min + ':' + sec;
}
//
function myTimer()
{
const showtimer=document.getElementById("timer")
showtimer.innerHTML = convertSeconds(timer);
timer--;
if (timer < 0){
clearInterval(interval);
showtimer.innerHTML='Done'
}
}