下拉菜单滑动过快

时间:2014-07-02 18:46:00

标签: jquery html css slidetoggle

我的解决方案:

我用这个: http://www.kriesi.at/archives/create-a-multilevel-dropdown-menu-with-css-and-improve-it-via-jquery

这里是jsfiddle:

http://jsfiddle.net/nBKZ9/

谢谢你们的帮助!

我有这个下拉菜单,可以使用这个小代码:

    $( document ).ready(function() {
        $('#menu-headermenu li > .sub-menu').parent().hover(function(){             
            $(this).children('.sub-menu').stop(true).slideToggle(400);              
        });
    }); 

问题是,如果鼠标移得过快,子菜单就会关闭,然后才能用鼠标悬停它们。

为了更好地理解,我制作了这个我在youtube上传的视频:https://www.youtube.com/watch?v=VlRJHkK5-u8

编辑:// http://jsfiddle.net/gLDu2/

3 个答案:

答案 0 :(得分:0)

首先,您不需要使用:

$('#menu-headermenu li > .sub-menu').parent().hover

只需使用:

$('#menu-headermenu li').hover

其次,.delay确实有效。查看更新的小提琴,活动延迟1000毫秒(1秒):

http://jsfiddle.net/gLDu2/3/

答案 1 :(得分:0)

这是另一种方式:http://jsfiddle.net/qphEE/1/

$('#menu-headermenu').find('.menu-item-has-children').hover(function () {
    $(this).children('.sub-menu').slideDown(400);
}, function () {
    $(this).children('.sub-menu').slideUp(400);
});

答案 2 :(得分:0)

这是我的问题的解决方案:

jQuery slideUp / slideDown函数存在一个已知问题,没有设置高度。确保要隐藏的元素具有指定的高度。

另外,min-height css属性将会成为现实。从元素中删除最小高度。

参考:

https://forum.jquery.com/topic/slideup-slow-and-slidedown-slow-happening-instantly