开始是01:59
。当我刷新页面时,它变成 01:58
并停止。它应该变成 01:59
,然后是 01:58
,然后是 01:57
等等。
function timer() {
let time = 119,
minutes = Math.floor(time / 60),
seconds = time % 60;
if (minutes < 10) {
minutes = `0${minutes}`;
}
else if (seconds < 10) {
seconds = `0${seconds}`;
}
if (seconds > 0) {
seconds = seconds - 1;
}
else {
clearInterval(SI);
}
document.getElementById('div').innerHTML = `${minutes}:${seconds}`;
}
let SI = setInterval(() => {
timer();
}, 1000);
<div id="div"></div>
答案 0 :(得分:0)
您在每次 time
迭代时都在休息 time()
变量。
将初始化移到函数外。
此外,您忘记在函数调用 time
后从 time--
变量中删除 1 秒;
function timer() {
let minutes = Math.floor(time / 60),
seconds = time % 60;
if (minutes < 10) {
minutes = `0${minutes}`;
}
else if (seconds < 10) {
seconds = `0${seconds}`;
}
if (seconds > 0) {
time--;
}
else {
clearInterval(SI);
}
document.getElementById('div').innerHTML = `${minutes}:${seconds}`;
}
let time = 119;
let SI = setInterval(() => {
timer();
}, 1000);
<div id="div"></div>
答案 1 :(得分:0)
解决了!即使我不知道没有代码的分钟是如何运行的 O.o
let time=123;
function timer(){
let minutes=Math.floor(time/60),
seconds=time%60;
/*if(minutes<10){
minutes=`0${minutes}`;
}if(seconds<10){
seconds=`0${seconds}`;
}*/
if(time>0){
time=time-1;
}
document.getElementById("div").innerHTML=`${minutes}:${seconds}`;
}
setInterval(()=>{
timer();
},1000);
<div id="div"></div>
答案 2 :(得分:0)
定时器组件的脚本应该是 setInterval(timer,1000)
。