高度切换而不会在jquery中丢失高度

时间:2011-07-18 11:48:10

标签: jquery jquery-animate

我有一个嵌套的div。当用户将鼠标悬停在父div上时,子div变为可见。 在鼠标移出时,孩子div会回到隐形状态。

我遇到的麻烦是,如果我快速鼠标悬停在我的父母div上5次,则slideToggle效果会播放5次,我必须等到它完成动画。

所以,我在.Stop()之前添加了slideDown(),但现在,如果我鼠标之前,则子div达到全高,那么当前高度将成为新的高度。所以下次我鼠标移动时我只能看到它(或根本没有看到,取决于我在父div上移除鼠标的时间)

如何解决此问题?

我很快就嘲笑了demo on JsFiddle

感谢。

2 个答案:

答案 0 :(得分:2)

您需要将代码更改为:

$('div#div2', this).not(":animated").slideDown();

.not(“:animated”)将告诉jQuery仅选择当前未设置动画的元素(在匹配集中)。这可以确保您的元素不会被双重动画。

与.stop()不同,这个不会让你的动画不完整,所以高度问题就这样纠正了。

jsFiddle:http://jsfiddle.net/YrRe4/1/

答案 1 :(得分:0)

您还可以将.stop()的布尔参数定义为true。 .stop(true,true)它将结束队列并在动画结束时跳转。

相关问题