私はアイテムにアニメーションクラスを追加するのを遅らせるために、この関数を使用しています。setInterval delayを更新するにはどうすればよいですか?
$(function() {
var itemQueue = [];
var queueTimer;
function processItemQueue() {
var $delay = 100; // needs to be based on item data-delay attr
if (queueTimer) {
return;
}
queueTimer = window.setInterval(function() {
if (itemQueue.length) {
var $firstinque = $(itemQueue.shift());
var $animation = $firstinque.attr('data-effect');
$firstinque.addClass($animation);
} else {
window.clearInterval(queueTimer);
queueTimer = null;
}
}, $delay);
}
$(".item-animate").waypoint(function() {
itemQueue.push(this.element);
processItemQueue();
}, {
offset: '90%'
})
});
基本機能が正常に動作しますが、私はアイテムデータ遅延属性に基づいて遅延を設定する必要があると私はしたsetInterval内であることを行う傾けます。詳細は上のフィドルをご覧ください。フィドルの2番目のアイテムは500msの遅延があるので、後で発射する必要があります。 何か助けていただければ幸いです。
可能な複製(HTTPここで私は200
HTMLで増加しています://stackoverflow.com/questions/1280263/changing-the-interval-of-setinterval-while-its-running) – Xufox
時間を変更することはできません一度定義されたsetIntervalまたはsetTimeoutの値です。できることは、それを破棄して再作成することだけです。 – Soren
固定遅延とリピートを使用するはずのsetIntervalを使用するのではなく、固定遅延で一度だけトリガーするsetTimeoutsの束を一緒にストリングします。 – James