我试图想出一种引人注目的视觉方式来显示数字。根据设置,有问题的数字可以在 0 到 10,000,000 左右之间变化。所以最初我以为我会用 Javascript 设置一个里程表,加起来就是最终的数字。我用一个简单的 setInterval 函数做到了这一点,但问题是,对于大于几千左右的数字,即使延迟为零,它也需要太长时间。正如人们所期望的那样。
我真正想要的是一个可以查看相关总数并根据此调整里程表添加方式的功能。也就是说,它需要某种估计的总数(例如,10 秒),然后计算出每个间隔需要添加多少才能在该时间内完成。它还会在某种程度上使用随机数,因此它不仅仅是每秒增加一百万的“粗大”。
这是原始代码,非常简单明了:
var totalNumber;
var currentNumber;
var changeInterval = 1; //even 0 is too slow
//later in a function scope
interval = setInterval(function() {
updateNumber();
}, changeInterval);
//later
function updateNumber() {
currentNumber++;
if(currentNumber>=totalNumber) {
clearInterval(interval);
}
document.getElementById("theNumber").innerHTML = currentNumber;
}
我在概念化实现这一点的非蹩脚方式时遇到了麻烦。有什么想法吗?