我想用 JavaScript 制作一个可以计算毫秒、秒和分钟的秒表。这就是我所拥有的:(您可以通过按空格来停止计时器)
var counter = document.getElementsByTagName('h1')[0];
var miliseconds = 0;
var seconds = 0;
var minutes = 0;
function Add() {
miliseconds++;
if (miliseconds >= 99) {
miliseconds = 0;
seconds++;
if (seconds >= 59) {
seconds = 0;
minutes++;
}
}
counter.textContent = (minutes ? (minutes > 9 ? minutes : "0" + minutes) : "00") + ":" +
(seconds ? (seconds > 9 ? seconds : "0" + seconds) : "00") + ":" +
(miliseconds ? (miliseconds > 9 ? miliseconds : "0" + miliseconds) : "00");
Timer();
}
function Timer() {
t = setTimeout(Add, 10);
}
Timer();
document.addEventListener("keypress", function(e) {
if (e.keyCode === 32) {
clearTimeout(t);
}
});
<h1 id="counter">00:00:00</h1>
问题是它似乎没有以正确的速度运行,这意味着当我将它与其他计时器进行比较时,它逐渐变得比它们慢(即计时器计数的速度随着时间的推移而减慢)。突然间,有 5 秒的差异,然后变成 7 秒的差异,依此类推。 任何帮助将不胜感激。
最佳答案
您应该创建一个startTime变量,然后计算elapsedTime,并使用它来计算要显示的其他变量。
var startTime = Date.now();
setTimeout(function(){
var elapsedTime = Date.now() - startTime;
// Additional code to calculate hour, minute, second, milisecond here
}, 10);
关于javascript - Javascript 中的秒表比正常时间慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46930796/