我想用纯 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/