2016-11-21 61 views
-4

这是一个倒数计时器。我不明白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

你需要具体了解什么?因为它所做的全部工作都在每秒重复 - >获取计时器剩余的分钟数,获取计时器留下的秒数,在数值小于10时添加0,显示所选html元素中的值,并且减少计时器1 – Icepickle

+0

@Ippickle为什么定时器声明为var timer = duration,seconds,minutes? – dadadodo

回答

1
minutes = parseInt(timer/60, 10); 

分钟是当前总秒60(秒在一分钟内)除以数。

例如:65/60 = 1分钟。我们只保留整数部分。

seconds = parseInt(timer % 60, 10); 

秒计算为当前总秒数计数器的模块60。

例如:[注意,在第二行中的parseInt函数是不必要] 65%60 = 5(1分钟,5秒)

var timer = duration, seconds, minutes; 

这也可以写为:

var timer = duration; 
var seconds; 
var minutes; 
+1

谢谢,但我的问题是更多关于VAR计时器被删除的方式为什么它像VAR计时器=持续时间,分钟,秒? – dadadodo

+0

那有什么问题? –

+0

好了现在我看到你编辑谢谢你的答案 – dadadodo

0

var timer = duration, seconds, minutes声明3个变量,只有第一个被初始化。这与写作相同:

var timer = duration; 
var seconds; 
var minutes; 
1

您可以在javascript中一次声明和创建多个变量。

var a, 
    b, 
    c; 

是相同

var a; 
var b; 
var c; 

也可以intialize变量也因此

var timer = duration, seconds, minutes; 

是一样的书写

var timer = duration; 
var seconds; 
var minutes; 

(如@Lorenzo已经提到)