我正在使用此函數來延遲向項目添加動畫類時,他們進來查看。如何更新setInterval延遲?
$(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內。請參閱上面的小提琴獲取更多信息。小提琴中的第二個項目延遲了500毫秒,所以它應該在晚些時候啓動。 任何幫助表示讚賞。
[更改的setInterval的時間間隔,而它的運行]的可能的複製(HTTP ://stackoverflow.com/questions/1280263/changing-the-interval-of-setinterval-while-its-running) – Xufox
你不能改變時間一旦定義了setInterval或setTimeout的值 - 你所能做的就是放棄它並重新創建它。 – Soren
而不是使用應該使用固定延遲和重複的setInterval,將一串setTimeouts串聯在一起,這隻會在固定的延遲時間內觸發一次。 – James