计时器归零
Stop timer at zero
我想让我的倒计时停在零,但它会重置而不是停止。
我在 runTimer 函数的末尾添加了一个条件语句,但没有任何反应。它只是重置。
我要结束一项重要的练习。我正在修改它并让它倒计时。
function runTimer() {
let currentTime = leadingZero(timer[1]) + ":" + leadingZero(timer[2]);
theTimer.innerHTML = currentTime;
timer[3]--;
timer[0] = Math.floor((timer[3]/100)/60); //minutes
timer[1] = Math.floor((timer[3]/100) - (timer[0] * 60)); //seconds
timer[2] = Math.floor(timer[3] - (timer[1] * 100) - (timer[0] * 6000)); //hundredths
if (currentTime = 0) {
clearInterval(interval);
}
}
我希望它停在零,但它只是重置回 59:00...我希望它停在 00:00。
问题出在这部分:
if (currentTime = 0)
由于您正在检查值是否为 0,因此您不想 分配 值 0
,而是想比较 currentTime
和 0
。这是通过 ===
运算符完成的。总结一下:
=
就是给一个变量赋一个值。 (左边是变量,右边是赋值)
==
或===
是比较两个值。(Difference between == and === in JavaScript)
你的行应该是:
if (currentTime == 0)
希望对您有所帮助。 :)
两点。
1) 如前所述,您的 if 子句将不起作用,因为您使用的是“=”(单个等号)。 JavaScript 中的单个等号会 分配 值,而不是 比较 值。但是,您想要比较值并需要使用双等号或三等号。
2) 即使您更改它,currentTime
也可能永远不会计算为零,因为您之前已将字符串分配给 currentTime
。因此,即使 currentTime 为 "00:00"
,字符串的计算结果也不会为 0(见图)
我猜你更想做这样的事情:
if (timer[2] === 0 && timer [1] === 0 && timer[0] === 0) {
clearInterval(interval);
}
或者很可能这就足够了:
if (timer[3] <= 0) {
clearInterval(interval);
}
我想让我的倒计时停在零,但它会重置而不是停止。
我在 runTimer 函数的末尾添加了一个条件语句,但没有任何反应。它只是重置。
我要结束一项重要的练习。我正在修改它并让它倒计时。
function runTimer() {
let currentTime = leadingZero(timer[1]) + ":" + leadingZero(timer[2]);
theTimer.innerHTML = currentTime;
timer[3]--;
timer[0] = Math.floor((timer[3]/100)/60); //minutes
timer[1] = Math.floor((timer[3]/100) - (timer[0] * 60)); //seconds
timer[2] = Math.floor(timer[3] - (timer[1] * 100) - (timer[0] * 6000)); //hundredths
if (currentTime = 0) {
clearInterval(interval);
}
}
我希望它停在零,但它只是重置回 59:00...我希望它停在 00:00。
问题出在这部分:
if (currentTime = 0)
由于您正在检查值是否为 0,因此您不想 分配 值 0
,而是想比较 currentTime
和 0
。这是通过 ===
运算符完成的。总结一下:
=
就是给一个变量赋一个值。 (左边是变量,右边是赋值)
==
或===
是比较两个值。(Difference between == and === in JavaScript)
你的行应该是:
if (currentTime == 0)
希望对您有所帮助。 :)
两点。
1) 如前所述,您的 if 子句将不起作用,因为您使用的是“=”(单个等号)。 JavaScript 中的单个等号会 分配 值,而不是 比较 值。但是,您想要比较值并需要使用双等号或三等号。
2) 即使您更改它,currentTime
也可能永远不会计算为零,因为您之前已将字符串分配给 currentTime
。因此,即使 currentTime 为 "00:00"
,字符串的计算结果也不会为 0(见图)
我猜你更想做这样的事情:
if (timer[2] === 0 && timer [1] === 0 && timer[0] === 0) {
clearInterval(interval);
}
或者很可能这就足够了:
if (timer[3] <= 0) {
clearInterval(interval);
}