Javascript中的秒表比正常时间慢

时间:2017-10-25 11:07:51

标签: javascript timer

我想在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>
&#13;
&#13;
&#13;

问题在于它似乎没有达到适当的速度,这意味着当我将它与其他定时器进行比较时,它逐渐变得比它们慢(即定时器计数的速度随着时间的推移而减慢)。突然之间,有5秒的差异,然后它变成了7秒的差异,依此类推。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

您应该创建 startTime 变量,然后计算 elapsedTime ,并使用它来计算要显示的其他变量。

- (BOOL)becomeFirstResponder {
    [_myTextField becomeFirstResponder];

    return NO;
}