在html中为计时器添加毫秒数

Use*_*218 0 html javascript

有什么办法可以为我的计时器添加毫秒数吗?

我目前正在使用这个计时器,但它只能在几秒钟内完成.

var count=99;
    var counter=setInterval(timer, 1000); //1000 will  run it every 1 second

    function timer(){
      count=count-1;

      if (count <= 0){
        clearInterval(counter);
        return;
      }
      document.getElementById("timer").innerHTML=count + " seconds"; // watch for spelling
    }
Run Code Online (Sandbox Code Playgroud)

谢谢

Aln*_*tak 5

定时器不会以毫秒精度运行 - 不仅低于标准JS最小超时,定时器事件可以排队等各种其他问题.在任何情况下(没有双关语意)你实际上看不到计时器每秒计数1000次.

只需window.requestAnimationFrame改为使用,并显示传递给该函数的时间与计时器的参考开始时间之间的差异.

var timer = document.getElementById('timer');

var expires = +new Date() + 10000;

(function update() {
  var now = +new Date();
  var togo = expires - now;
  if (togo > 0) {
    timer.innerHTML = togo;
    window.requestAnimationFrame(update);
  } else {
    timer.innerHTML = 0;
  }
})();
Run Code Online (Sandbox Code Playgroud)
<div id="timer"></div>
Run Code Online (Sandbox Code Playgroud)

  • @ chipChocolate.py这是计时器精度的一个自然限制 - 你只能每16ms获得一次更新,并且不会一次倒计时.要修复它,您必须在循环结束时手动将显示的值显式设置为零. (2认同)