编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

JQuery hover slidedown/slideup重复触发/抖动/闪屏问题解决

最近,做了一个医疗器械的小网站,网站导航菜单如下图所示,移到一级菜单上就会显示二级菜单,用到的是jquery的slideDown、slideup。

网站菜单

具体代码如下:

$(".menu li").hover(function () {
    $(this).children(".zi-menu").slideDown();
}, function () {
    $(this).children(".zi-menu").slideUp();
});

在客户使用过程中发现,当我在两个一级菜单见快速移动,在第一个菜单的二级菜单消失前,快速移至二级菜单,二级菜单就会在2个一级菜单的二级菜单中快速切换,就会出现重复触发、抖动、闪屏的感觉。

我的解决方法就是使用stop函数,stop函数的用法如下所示:

stop([clearQueue],[jumpToEnd]); clearQueue:如果设置成true,则清空队列,可以立即结束动画。 jumpToEnd:如果设置成true,则完成队列,可以立即完成动画。可选,默认是false。

我把代码改成如下形式:

$(".menu li").hover(function () {
    $(this).children(".zi-menu").stop(true, false).slideDown();

}, function () {
    $(this).children(".zi-menu").stop(true, false).slideUp();
});

这样,就解决了slidedown/slideup重复触发/抖动/闪屏的问题了。

未经允许不得转载: 技术文章 » javascript » JQuery hover slidedown/slideup重复触发/抖动/闪屏问题解决