ページが読み込まれると「スピンアップ」し、フルーツ マシンのような印象を与えるように、Web ページに複数の数字を表示したいと考えています。
これには、遅延ループを持つ単純な関数が含まれます。これを行う方法は、setTimeout を再帰的に使用することのようです。これは、ページ上の 1 つの数字に対してのみ有効です。
ただし、複数の数字が同時に回転する場合は、それぞれに独自のスピナー オブジェクトが必要です。次のようなプロトタイプを使用しました。
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();
ただし、プロトタイプ メソッド内に再帰関数を配置すると、大きなクラッシュが発生します。これを回避する方法がわかりますか?
どうもありがとう!
デレク。