我想使用一个简单的倒计时计时器,从函数运行时的30秒开始,到0结束。没有毫秒。它怎么编码呢?
发布于 2009-07-28 04:00:14
var count=30;
var counter=setInterval(timer, 1000); //1000 will run it every 1 second
function timer()
{
count=count-1;
if (count <= 0)
{
clearInterval(counter);
//counter ended, do something here
return;
}
//Do code for showing the number of seconds here
}
要使计时器的代码出现在段落中(或页面上的任何其他位置),只需将行:
<span id="timer"></span>
您希望秒数出现的位置。然后在您的timer()
函数中插入以下行,如下所示:
function timer()
{
count=count-1;
if (count <= 0)
{
clearInterval(counter);
return;
}
document.getElementById("timer").innerHTML=count + " secs"; // watch for spelling
}
发布于 2012-07-05 06:33:35
到目前为止,答案似乎依赖于即时运行的代码。如果您将计时器设置为1000ms,它实际上将在1008左右。
下面是你应该怎么做:
function timer(time,update,complete) {
var start = new Date().getTime();
var interval = setInterval(function() {
var now = time-(new Date().getTime()-start);
if( now <= 0) {
clearInterval(interval);
complete();
}
else update(Math.floor(now/1000));
},100); // the smaller this number, the more accurate the timer will be
}
要使用,请调用:
timer(
5000, // milliseconds
function(timeleft) { // called every step to update the visible countdown
document.getElementById('timer').innerHTML = timeleft+" second(s)";
},
function() { // what to do after
alert("Timer complete!");
}
);
发布于 2013-03-12 06:48:12
这是另一个,如果任何人需要一个分钟和秒:
var mins = 10; //Set the number of minutes you need
var secs = mins * 60;
var currentSeconds = 0;
var currentMinutes = 0;
/*
* The following line has been commented out due to a suggestion left in the comments. The line below it has not been tested.
* setTimeout('Decrement()',1000);
*/
setTimeout(Decrement,1000);
function Decrement() {
currentMinutes = Math.floor(secs / 60);
currentSeconds = secs % 60;
if(currentSeconds <= 9) currentSeconds = "0" + currentSeconds;
secs--;
document.getElementById("timerText").innerHTML = currentMinutes + ":" + currentSeconds; //Set the element id you need the time put into.
if(secs !== -1) setTimeout('Decrement()',1000);
}
https://stackoverflow.com/questions/1191865
复制相似问题