2011-09-08 38 views
0

我試圖阻止動畫在另一個動畫的回調中傳播,我試圖通過將.stop(true, true)添加到我希望阻止淡入淡出的元素上來直接停止動畫但它似乎並沒有停止動畫。在另一個fadeOut的回調中停止淡出

我創建了一個小提琴 - >按照鏈接http://jsfiddle.net/5rEWa/

下面是代碼:

$('.fadeMe').delay(3000).fadeOut(1000, function(){ 
     $('.meToo').fadeOut(1000); 
    }); 


    $('#stop').click(function(){ 
     $('.meToo').stop(true, true); 
    }); 

像往常一樣堆放我很感激你的幫助

回答

1

http://jsfiddle.net/5rEWa/8/

的解決辦法是調用stop().animate({opacity:'100'});來停止fadeOut()動畫之後已經開始。如果你還想在開始之前取消它,你需要做這樣的事情:

$(function(){ 
    var isCancelled = false; 
    $('.fadeMe').delay(3000).fadeOut(1000, function(){ 
     if (!isCancelled) 
      $('.meToo').fadeOut(1000); 
    }); 

    $('#stop').click(function(){ 
     isCancelled = true; 
     $('.meToo').stop().animate({opacity:'100'}); 
    });  
}); 
+0

這沒有工作芽,我試圖停止動畫,即使它已經開始運行,你在Chrome中的解決方案什麼都不做,除非我失去了一些東西? – Xavier

+0

檢查我的jsfiddle - 它停止綠框淡出並將其重置爲初始狀態:http://jsfiddle.net/3MBrB/是不是你所需要的? (我也在使用Chrome),它只能在綠色框開始動畫之後起作用。 – Tsar

+0

它不會通過你的鏈接做到這一點 – Xavier