在最近的工作当中遇到一个这样的问题,就是关于mouseover mouseout事件触发 slideup slidedown,当鼠标快速滑过多次。停止滑动的时候。div仍然在那么不停的显示隐藏。
我上网搜索了一下,果然有这一类型的问题,我学习了,问题解决了,今天分享一下,方便我记忆,也方便以后遇到这样的问题的同仁能很快的解决。
解决slideDown(),slideUp()执行结束才开始下一次的执行:
上网看到这个需要冒泡解决,用到的也是jquery中的一个函数,那就是stop()。
stop() 方法停止当前正在运行的动画。
语法
$(selector).stop(stopAll,goToEnd);
参数
stopAll 可选。规定是否停止被选元素的所有加入队列的动画。
goToEnd 可选。规定是否允许完成当前的动画。该参数只能在设置了 stopAll 参数时使用。
我们只需要在slideDown()或者sliderUp()执行下一次之前停止它,就可以实现,鼠标多次放到元素上,在拿开,元素也不会动个没完。
实例:
$("#a").stop(true, true).slideDown();
$("#a").stop(true, false).slideDown();
我用的是下面的那个解决的,其实stop()这个方法在很多效果上都可以用到。这个就需要朋友们自己去测试了。