我有一个简单的倒计时器,计数到指定的数字并在一段时间(65秒)后完成。我想知道如何将计数随机化一点点,以便它在某些点上更快,在其他点上更慢,但仍然在指定的结束时间完成。这是我用来计算的功能。 maxCount是动态的,但我在本例中将其设置为101。
我在这里设置了一个jsfiddle:http://jsfiddle.net/bz2Hz/
function fillCounter() {
var maxCount = 101;
var interval = 65000/maxCount;
var val = 0;
count();
function count(){
if ( val <= maxCount ){
val++;
$('.results-number').html(val);
setTimeout(count,interval);
}
}
}
任何提示将不胜感激。提前致谢
答案 0 :(得分:1)
尝试将间隔设置为随机
function fillCounter() {
var maxCount = 101;
var interval = 65000/maxCount;
var val = 0;
count();
function count(){
if ( val <= maxCount ){
val++;
$('.results-number').html(val);
setTimeout(count,interval);
var plusOrMinus = Math.random() < 0.5 ? -100 :100;
console.log(plusOrMinus);
interval = (interval + Math.floor((Math.random())+plusOrMinus));
console.log(interval);
}
}
}
fillCounter();
编辑:
你可以尝试这样 fiddle
设置计时器
var count = 65;
var counter = setInterval(timer, 1000);
function timer() {
counting();
count = count - 1;
if (count <= 0) {
clearInterval(counter);
return;
}
}
然后通过设置随机间隔
来打印您的值 var val = 0;
function printer() {
val++;
$('.results-number').html(val);
}
function counting() {
var multi = Math.random() < 0.5 ? 1 : 10000;
interval = Math.floor((Math.random() * multi));
console.log(interval);
setTimeout(printer, interval);
}