2016-11-21 98 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已經提到)