我从格式00:12:54的后端开始,然后将其显示在屏幕上。但是,我想有这个时间继续下去。我已经在javascript中创建了一个变量,该变量将耗尽时间并使用setTimeout
循环以使用document.getElementById显示新值。我认为如果我有很多时间在同一时间下来,这可能会有问题。我可能需要一个数组?
你会怎么做?如果我没有其他建议,我会尝试自己的方式,但我很想知道它是否确实有更安全的方法。
答案 0 :(得分:4)
你知道jQuery Framework吗?它是一个Javascript框架,有许多实用程序方法和函数,可以让你更轻松地完成Javascript工作。
这是count down plugin(尚未测试过)。
我建议你download JQuery而不是download the plugin。检查网站上“相对”选项卡的代码示例。你可以有类似的东西:
$('#until2d4h').countdown({until: '+12M +54S'});
*我建议您的唯一缺点是您需要添加2个.js。尝试仅在需要时添加它们,您将会找到它。
答案 1 :(得分:2)
一般算法:
window.setTimeout
在1000ms内调用自身(或根据函数内所经过的时间进行调整)。这是一个粗略的剪辑:
window.onload = function () {
var countdown_start_in_ms = 6000; // from server
function tick() {
var now = new Date().getTime();
var disp = start - now;
if (disp < 0) {
disp = 0;
}
var el = document.getElementById("countdown");
el.innerHTML =
// quick hack to format time
/(\d\d:\d\d:\d\d) ...$/.exec(new Date(disp).toUTCString())[1];
if (disp > 1000) {
var elapsed = new Date().getTime() - now;
window.setTimeout(tick, 1000 - elapsed);
} else {
// stop countdown and set color to light grey
el.style.color = "#ccc";
}
}
var start = new Date().getTime() + countdown_start_in_ms;
tick();
}
答案 2 :(得分:1)
答案 3 :(得分:0)
查看Grab hands and set your own time.并检查其代码。虽然它是用Dojo编写的,但“时钟”部分是用纯JavaScript编写的。在你的情况下,唯一的区别是如何推进反击 - 减少而不是增加它。