【问题标题】:Maintain hover on nested list ul保持悬停在嵌套列表 ul
【发布时间】:2018-07-04 14:52:52
【问题描述】:

见我的fiddle here

我想我快到了。

我希望嵌套的<ul> 在其父级悬停时滑出。

这很好用,但是当您尝试将鼠标悬停在嵌套上时,它会切换到最后一个嵌套的 <ul> 选项。您将在上面的示例中看到 - 每次将鼠标悬停在菜单上时,菜单都会切换到“国际”项目。

JS:

$(document).ready(function(){

    $('li.has-children').hover(function(e) {
        e.stopPropagation();
        $(this).children('ul').addClass('nav-open');
    }, function(e){
        e.stopPropagation();
        $('li.has-children > ul').removeClass('nav-open');
    }); 

}); 

CSS:

ul.main-menu {
            float: left;
            width: 33%;
            position: relative;
            display: flex;
            flex-wrap: wrap;
            background: white;
            font-size: 1.3em;
            padding: 0;
      background:red;
        }

            ul.main-menu li {
                width: 100%;
                float: left;
            }           

            ul.main-menu li a {
                display: block;
                float: left;
                width: 100%;
                padding:13px 0;
                color: #333;
                position: relative;
            }


            ul.main-menu li ul {
                position: absolute;
                width: 100%;
                top:0;
                left: 100%;
                opacity: 0;
                transition: all 0.1s ease-in-out;
            }

            ul.main-menu ul.nav-open {
                opacity: 1;
                left: 90%;
            }

谢谢!

【问题讨论】:

    标签: jquery css menu


    【解决方案1】:

    您的代码应如下所示:

    见:https://jsfiddle.net/ainouss/23asw6d1/1/#&togetherjs=PIa9R7MsUx

    ul.main-menu {
        float: left;
        width: 33%;
        position: relative;
        display: flex;
        flex-wrap: wrap;
        background: white;
        font-size: 1.3em;
        padding: 0;
    }
    .has-children{
        border:1px solid red;
    }
    .has-children ul{
        display:none;
    }
    
    ul.main-menu li {
        width: 100%;
        float: left;
    }
    
    ul.main-menu li a {
        display: block;
        float: left;
        width: 100%;
        padding:13px 0;
        color: #333;
        position: relative;
    }
    

    【讨论】:

    • 很抱歉弄乱了你的样式,你仍然可以更新它;
    • 我无法让它与我的样式配合使用。我需要子导航滑出主列表的顶部,而不是父列表项。我注意到您更改了 JS 和 CSS,是 JS 在回答我的问题吗?谢谢
    • 如果您仍想将其顶部对齐,请参阅jsfiddle.net/ainouss/ok1zsgu4,但您应该更改子下拉菜单的 min-hight 以使其完美运行。
    • 顺便说一句你不需要 event.stopPropagation()
    • 回答您问题的更改是:显示:默认为无,显示:发生悬停时阻止。
    猜你喜欢
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 2018-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    相关资源
    最近更新 更多