1
我有這個代碼,它工作得很好,但我有這個偵聽器,檢測當你點擊按鈕,然後它應該停止所有的動畫,並開始新點擊按鈕jquery的停止/完成需要太長的時間來停止動畫
$(document).ready(function(){
var interval1,interval2,oref;
interval1 = setInterval(function(){PureAnim("Pure");},1000);
$("#Pure").click(function(){
updateContent("index");});
$("#Comprar").click(function(){
updateContent("Pacotes","Comprar");});
function updateContent(ref, botao = "Pure")
{
clearInterval(interval1);
$("#" + botao).finish(); //i've tried stop() here too
interval1 = setInterval(function(){PureAnim(botao);},500);
$("#mCont").load(ref + ".html #wauw");
}
function PureAnim(ref){
if($("#" + ref).css("opacity") == 1.0);
{
$("#" + ref).fadeTo(500, 0.0);
}
if($("#" + ref).css("opacity") == 0.0);
{
$("#" + ref).fadeTo(500, 1.0);
}
}
});
事情是,動畫實際上停止了,但經過了很大的延遲。 第一次單擊其他按鈕時,它立即停止,但在第一次後,它會停止一些PureAnim步驟。
我已經嘗試將.finish更改爲所有可能的.stop(),但都沒有投入工作。
我認爲這不是關於完成或加載函數,但更多的是如何處理這些動畫,我認爲這可能是因爲這一點。 Video of the error
您是否嘗試過使用CSS動畫,而不是JS? –
不,我爲什麼要? –
您的'finish()'應用於錯誤的'botao'(它適用於* new *值,而不是您想要完成的) - 您需要存儲botao的值,以便您可以對其應用完成。 –