javascript - 十进制计数器 JavaScript

标签 javascript html counter

我想用纯 JavaScript 构建一个十进制计数器。我不知道为什么该函数不想工作并从 0.0 计数到 5.1。我假设问题出在 Math.round - 也许它的定义方式错误。

HTML:

<span id="values">5.1</span>
<span id="counter"></span>

JS:

var numbers = document.getElementById('values').innerHTML;
var i = 0;                    

function countUp () {           
   setTimeout(function () {    
      document.getElementById('counter').innerHTML = i;
      this.i(Math.round(now*10)/10);
      i++;                     
      if (i <= numbers) { 
         countUp();           
      }                       
   }, 5000)
}

countUp(); 

最佳答案

您可以使用 Number#toFixed 删除不需要的 float 。

function countUp () {
    var numbers = document.getElementById('values').innerHTML,
        i = 0,
        interval = setInterval(function () {
            i = +(i + 0.1).toFixed(1);
            document.getElementById('counter').innerHTML = i;
            if (i >= +numbers) { 
               clearInterval(interval );           
            }          
        }, 100);
}

countUp(); 
<span id="values">5.1</span>
<span id="counter"></span>

关于javascript - 十进制计数器 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45671226/

相关文章:

javascript - 使用 JavaScript 验证 HTML 表单

javascript - 如何选择位于不同跨度且也是类元素的元素?

ruby-on-rails - 在 Rails 中创建一个简单的计数器

javascript - Node 调试: watch expression yields different result from exec console.日志

javascript - DropDownList 在处理页面后丢失值

javascript - 将用于绘制 d3 图形的数据写入客户端的文件中

javascript - Twitter 推文链接未显示

java - 如何统计数组列表中单词的重复次数?

linux - 使用 Linux 读取 ARMv8 中的 PMU 计数器

javascript - 为什么 Promise 构造函数如此冗长?