我想在页面加载时在我的网页上“旋转”多个数字,给人一种像水果机的印象。
这涉及一个带有延迟循环的简单函数。这样做的方法似乎是递归地使用 setTimeout。这仅适用于页面上的一个数字。
但是,对于同时旋转的多个数字,每个数字都需要自己的微调器对象。我使用了这样的原型:
var Spinner = function(id){
this.element = $('#' + id);
this.target_value = this.element.text()
this.initial_value = this.target_value - 30;
};
Spinner.prototype.spinUp = function() {
loop(this.element);
function loop(element) {
element.html(this.initial_value += 1);
if (this.initial_value == this.target_value) {
return;
};
clr = setTimeout(loop(element), 30); // 30 millisecond delay
};
};
var Spinner1 = new Spinner('number')
Spinner1.spinUp();
然而,在原型方法中放置一个递归函数会导致很大的崩溃。你能找到解决办法吗?
非常感谢!
德里克。