Javascript 当十进制值为0时,计数动画被卡住
我从另一篇文章中得到了这个动画功能Javascript 当十进制值为0时,计数动画被卡住,javascript,Javascript,我从另一篇文章中得到了这个动画功能 function animateValue(id, start, end, duration) { var obj = document.getElementById(id); var range = end - start; var minTimer = 50; var stepTime = Math.abs(duration / range); stepTime = Math.max(stepTime, minTi
function animateValue(id, start, end, duration) {
var obj = document.getElementById(id);
var range = end - start;
var minTimer = 50;
var stepTime = Math.abs(duration / range);
stepTime = Math.max(stepTime, minTimer);
var startTime = new Date().getTime();
var endTime = startTime + duration;
var timer;
function run() {
var now = new Date().getTime();
var remaining = Math.max((endTime - now) / duration, 0);
var value = end - (remaining * range);
obj.innerHTML = (value).toLocaleString('en', { maximumFractionDigits: 16 });
if (value == end) clearInterval(timer);
}
var timer = setInterval(run, stepTime);
run();
}
太棒了!我每秒钟更新一次数值,直到数值下降,出现小数点为止。在这一点上计数错误,我认为这是因为时间不完美。我该如何解决这个问题?我似乎不明白
您可以在此处查看错误:我不理解问题所在。它在开始值和结束值之间进行计数,然后停止计数?请发布一个完全复制这个问题的例子“直到值下降”——我不明白你在这里的意思。滴在哪里?下面是什么?是的,我也无法让它“bug out”:@Karl AndréGagnon我很抱歉我应该提供一个示例,您可以在这里查看,您可以将
stepTime
设置为静态变量。