2013-01-23 62 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