你會注意到,你的代碼是使用setInterval()
。這個全局JavaScript函數用於在給定的時間間隔週期性地執行代碼。它的典型用法需要兩個參數(這是您在此使用的方式)。它會返回一個唯一的ID,用於識別您的特定間隔功能(因爲可以同時設置多個ID)。
第一個參數是要在間隔上執行的函數。您的功能是匿名功能:
function() {
value = ((+value) + .1).toFixed(1);
if (value == 80.5) clearInterval(interval);
$('p').html(value + '%');
}
此函數將增加每次執行的進度百分比。
第二個參數是一個毫秒數(千分之一秒)的整數,讓它在執行第一個參數前的函數之前消逝。我相信這是你問題的關鍵部分。你的代碼有2
(在你的發佈代碼的最後一行),所以它在執行你的函數之前會等待2毫秒(這會增加百分比進度),然後它會等待2毫秒,然後再次執行相同的函數,等等
通過簡單地更改第二個參數的值,可以更改函數每次執行的速度或速度,這會更改您的百分比增加的速度或速度。因此,如果將其設置爲500
,那麼setInterval
將在每次執行該函數之前等待半秒。
您可以閱讀其他JavaScript定時器函數here,特別是約clearInterval()
,您的代碼在匿名函數中使用該函數以在達到80.5%
時結束間隔。
只是增加了最後一個號碼,'2'在間隔結束? – adeneo
@adeneo計數沒有結束,並且還顯示多個像這樣的數字99.561321654651615%:( – Muhammed