十进制计数器 JavaScript
Decimal counter JavaScript
我想在纯 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
删除不需要的浮点数。
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 中构建一个十进制计数器。我不知道为什么函数不想工作并从 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
删除不需要的浮点数。
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>