我有一系列圖片來創建動畫。這可以通過使用下面的代碼來實現,但是我在開始一個新的動畫時遇到了多次點擊混淆的常見問題。禁用動畫序列的點擊功能
我需要能夠在動畫運行時禁用點擊或類似的效果。它可以禁用點擊直到動畫結束,或重置動畫以重新開始並清除當前正在運行的序列。
目前,我有以下代碼:
$(".startbutton").click(function() {
$(this).clearQueue(function() {
$(this).find("ul li:nth-child(1)").delay(124).animate({opacity: 0.0}, 0).delay(1860).animate({opacity: 1.0}, 0);
$(this).find("ul li:nth-child(2)").delay(124).animate({opacity: 1.0}, 0).delay(125).animate({opacity: 0.0}, 0);
$(this).find("ul li:nth-child(3)").delay(248).animate({opacity: 1.0}, 0).delay(125).animate({opacity: 0.0}, 0);
$(this).find("ul li:nth-child(4)").delay(372).animate({opacity: 1.0}, 0).delay(125).animate({opacity: 0.0}, 0);
$(this).find("ul li:nth-child(5)").delay(496).animate({opacity: 1.0}, 0).delay(125).animate({opacity: 0.0}, 0);
$(this).find("ul li:nth-child(6)").delay(620).animate({opacity: 1.0}, 0).delay(125).animate({opacity: 0.0}, 0);
$(this).find("ul li:nth-child(7)").delay(744).animate({opacity: 1.0}, 0).delay(125).animate({opacity: 0.0}, 0);
$(this).find("ul li:nth-child(8)").delay(868).animate({opacity: 1.0}, 0).delay(125).animate({opacity: 0.0}, 0);
$(this).find("ul li:nth-child(9)").delay(992).animate({opacity: 1.0}, 0).delay(125).animate({opacity: 0.0}, 0);
$(this).find("ul li:nth-child(10)").delay(1116).animate({opacity: 1.0}, 0).delay(125).animate({opacity: 0.0}, 0);
$(this).find("ul li:nth-child(11)").delay(1240).animate({opacity: 1.0}, 0).delay(125).animate({opacity: 0.0}, 0);
$(this).find("ul li:nth-child(12)").delay(1364).animate({opacity: 1.0}, 0).delay(125).animate({opacity: 0.0}, 0);
$(this).find("ul li:nth-child(13)").delay(1488).animate({opacity: 1.0}, 0).delay(125).animate({opacity: 0.0}, 0);
$(this).find("ul li:nth-child(14)").delay(1612).animate({opacity: 1.0}, 0).delay(125).animate({opacity: 0.0}, 0);
$(this).find("ul li:nth-child(15)").delay(1736).animate({opacity: 1.0}, 0).delay(125).animate({opacity: 0.0}, 0);
$(this).find("ul li:nth-child(16)").delay(1860).animate({opacity: 1.0}, 0).delay(125).animate({opacity: 0.0}, 0);
$(this).find("ul li:nth-child(17)").animate({opacity: 0.0}, 0).delay(1984).animate({opacity: 1.0}, 0);
});
});
的.clearQueue
我插入的動畫不再可以多次點擊和搞砸了的作品。但是,一旦動畫序列完成,動畫就不能再被點擊並且不會再次運行。
我猜我需要'清除''clearQueue'或類似的東西。
如果任何人有任何建議,將不勝感激。我曾嘗試使用人們在其他類似帖子中建議的':animated'解決方案,這似乎是一個明智的解決方案,但迄今尚未解決問題。
['for'loop](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/for)。 *用它*。 – nbrooks
我想知道這一點:「動畫不能再被點擊」。這是否意味着點擊開始按鈕或實際的動畫元素('ul li')?下面的 – hayavuk
是一個測試頁,包含我正在嘗試執行的操作,以及如何使用上面提供的腳本來處理它。希望會有所幫助。 –