我想在纯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();
答案 0 :(得分:0)
您可以使用Number#toFixed
来消除不需要的浮点数。
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();
&#13;
<span id="values">5.1</span>
<span id="counter"></span>
&#13;