这是一个倒计时器。我不明白var timer
是如何运作的。每个间隔后它的设定值是多少?计时器如何产生分钟数和秒数?有人会逐步分解这段代码的运作方式吗?
minutes = parseInt(timer / 60, 10);
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
以下是完整的代码:
function startTimer(duration, display) {
var timer = duration, minutes, seconds;
setInterval(function () {
minutes = parseInt(timer / 60, 10);
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
if (--timer < 0) {
timer = duration;
}
}, 1000);
}
window.onload = function () {
var fiveMinutes = 60 * 5,
display = document.querySelector('#time');
startTimer(fiveMinutes, display);
答案 0 :(得分:1)
minutes = parseInt(timer / 60, 10);
分钟数是当前总秒数除以60(一分钟内的秒数)。
例如:65/60 = 1分钟。我们只保留整数部分。
seconds = parseInt(timer % 60, 10);
秒计算为当前总秒数计数器的模块60。
例如:65%60 = 5(1分钟,5秒)
[请注意,在第二行中,parseInt是不必要的。]
var timer = duration, seconds, minutes;
这也可以写成:
var timer = duration;
var seconds;
var minutes;
答案 1 :(得分:1)
您可以在javascript中一次声明多个变量并对其进行声明。
var a,
b,
c;
与
相同var a;
var b;
var c;
你也可以初始化变量
var timer = duration, seconds, minutes;
与写作相同
var timer = duration;
var seconds;
var minutes;
(正如@Lorenzo已经提到过的)
答案 2 :(得分:0)
var timer = duration, seconds, minutes
声明3个变量,只有第一个被初始化。它与写作相同:
var timer = duration;
var seconds;
var minutes;