我需要帮助处理我在JavaScript / jQuery中使用的东西
我想给出一个设定的'目的地'号码,并给它一个设定的持续时间,然后让它在整个持续时间内以1为间隔加总(不是等间隔,但不是在开始时全部,结束或中间),但是在一段时间内达到“目的地”号码已经结束。
所以,如果我设置20秒的持续时间,并且'目的地'号码为10.它将启动计时器,并以1为间隔(无图案)随机添加,并且持续时间同时结束添加最后一个数字。
我真的很困惑,不知道从哪里开始。
非常感谢任何帮助,非常感谢!
答案 0 :(得分:0)
我的方法是:
window.setTimeout
并延迟所有延误。给它一个函数,将当前值递增1。代码:
var start = parseInt($("#inStart").val(), 10),
end = parseInt($("#inEnd").val(), 10),
duration = parseInt($("#inDuration").val(), 10),
difference = end - start,
current = start - 1,
step = duration * 1000 / difference,
delays = [],
index, amount,
increment = function () {
current += 1;
$("#outCurrent").text(current);
};
// calculate equal delays
for (index = 0; index <= difference; index++) {
delays.push(step * index);
}
// randomize delays, without changing the sum
for (index = 1; index < delays.length - 2; index++) {
amount = (Math.random() - 0.5) * step;
delays[index] -= amount;
delays[index+1] += amount;
}
// schedule the increment calls
for (index = 0; index < delays.length; index++) {
window.setTimeout(increment, delays[index]);
}
以下是demo fiddle,您可以尝试一下。