使用slideDown和slideUp做二级菜单时遇到的bug解决方法

原博文 http://caibaojian.com/sliderdown-slideup.html 只是为了自己学习

处理导航时会遇到鼠标迅速移上去,迅速移开,然后就会发现,下来菜单逐渐消失,最后移上去的时甚至是不显示了。

只要将里面的第一个stop()改为stop(true,true).第二个stop()去掉即可。或者在第二个里面加上stop(true,true),第一个去掉。

或者使用这样子的函数:把第一个stop()改为filter(':not(:animated)').同样的第二个也不需要添加stop().

这里面涉及到的其实就是一个动画的stop();函数

stop() 方法停止当前正在运行的动画。
$(selector).stop(stopAll,goToEnd)
stopAll 可选。规定是否停止被选元素的所有加入队列的动画。
goToEnd 可选。规定是否允许完成当前的动画。该参数只能在设置了 stopAll 参数时使用。

从上面的stop()可以看出,我们滑过的时候触发了slideDown();那么让他的高度自然完成当前动画,同时停止加进来的动画队列。

 

 

 

//ulObj.animate({height: 'toggle', opacity: 'toggle'}, speed);

posted @ 2014-09-02 11:08  nc_blog  阅读(688)  评论(0编辑  收藏  举报