總是遲到了,但這裏有一個我早些時候發表。似乎很遺憾浪費它。
http://jsfiddle.net/dy25nce7/
function countdownTimer(el,duration){
var exp = Date.now() + duration;//expires in now + duration milliseconds
//callback using window.requestAnimationFrame if available else setTimeout at 60fps:
var rAF = window.requestAnimationFrame || function(callback){window.setTimeout(callback,1000/60);};
//left-pad with leading zeros
function pad(n,s){
s = s||2;
return ("00000"+n).substr(-s);
}
//The loopy bit:
//note the use of a bitwise right-shift to convert to int (http://jsperf.com/number-vs-parseint-vs-plus/39)
(function update() {
var n = Date.now(),
e = (exp-n),
ms= (e%1000),
s = ((e/1000)%60) >> 0,
m = ((e/(1000*60))%60) >> 0,
h = ((e/(1000*60*60))%24) >> 0;
if (e > 0) {
el.innerHTML = pad(h)+":"+pad(m)+":"+pad(s)+":"+pad(ms,3);
rAF(update);
} else {
el.innerHTML = "00:00:00:000";
}
})();//IIFE (Immediately-Invoked Function Expression)
};
countdownTimer(document.getElementById('timer'),10000);
你說的 「添加毫秒」 呢? setInterval在觸發你的函數之前需要幾毫秒的時間。 – Shriike 2014-10-17 19:42:25
更改'setInterval(timer,1000);''setInterval(timer,1);'每毫秒運行'timer()' – SuckerForMayhem 2014-10-17 19:43:21
我想在我的計時器上顯示毫秒。 目前顯示爲60秒。我希望它是60:00秒 – User358218 2014-10-17 19:43:27