2013-01-23 67 views
2

我認爲這段代碼可以工作,但它只能工作50%。它在動畫寬度從0到200px時起作用,反之則不起作用。jQuery動畫未播放

這個工程:$('#left').animate({"width": "200px"}, "1000").show();

但這並不:$('#left').animate({"width": "0px"}, "1000").hide();

我究竟做錯了什麼?

Here is a JSFIDDLE with all the code

回答

1

隱藏之後的動畫完成:

$('#left').animate({"width": "0px"}, "1000", function() { 
    $(this).hide(); 
}); 

之所以存在是異步動畫火災,然後隱藏立即調用,導致它只是消失。把它放在完整的回調中給你想要的效果。

查看更新的提琴:http://jsfiddle.net/nV5Tu/12/

+0

啊,差不多有!我可能不得不改變演出動畫呢?先顯示然後播放動畫?因爲當你點擊一些按鈕後,它現在不能100%工作。 [JSFIDDLE](http://jsfiddle.net/nV5Tu/11/) – ThomasCS

+0

否。在所有動畫之前嘗試使用['.stop()'](http://api.jquery.com/stop/)。 'show'實際上應該是這樣的,所以只要動畫開始就顯示出來。 –

+0

jeah工作! – ThomasCS