jquery - 3行下拉菜单问题

标签 jquery html css

我在响应式手机上显示下拉菜单时遇到问题。 请参阅testing page并调整您的浏览器或检查您的手机。请注意,三行图标下拉菜单将不会显示。

单击 3 行图标时,它调用 JS toggleClass = "active"以显示 HTML 中的现有菜单,但没有任何反应。我做错了什么?

HTML

<div class="wrap">
    <nav class="menu">
        <ul class="active">
            <li class="active"><a href="#home">Home</a></li>
            <li><a href="#logo">Logos</a></li>
            <li><a href="#banner">Banners</a></li>
            <li><a href="#email">Email/Promotions</a></li>
            <li><a href="https://dribbble.com/search?q=Christian+Luneborg">Art</a></li>
            <li><a href="#website">Websites</a></li>
            <li><a href="#mobile">Mobiles</a></li>
            <li><a href="https://www.linkedin.com/in/christian-luneborg-bb13431b" target="_blank"><img src="img/linkedin-logo-sm.png" /></a></li>
        </ul>
      <a class="toggle-nav" href="#">&#9776;</a>
    </nav>
</div>

CSS

@media screen and (max-width: 860px) {
.menu {
    position:relative;
    display:inline-block;
}

.menu ul.active {
    display:none;
}

.menu ul {
    width:100%;
    position:absolute;
    top:120%;

    background:#1e1e1e;
}

.menu ul:after {
    width:0px;
    height:0px;
    position:absolute;
    top:0%;
    content:'';
    transform:translate(0%, -100%);
    border-left:7px solid transparent;
    border-right:7px solid transparent;
    border-bottom:7px solid #303030;

}

.menu li {
    margin:5px 0px 5px 0px;
    float:left;
    display:block;

}

.menu a {
    display:block;

}

.toggle-nav {
    float:left;
    display:inline-block;
    background:#1e1e1e;
    color:#777;
    font-size:20px;
    transition:color linear 0.10s;

}

.toggle-nav:hover, .toggle-nav.active {
    text-decoration:none;
    color:#66a992;
}
}

JS

jQuery(document).ready(function() {
    jQuery('.toggle-nav').click(function(e) {
    jQuery(this).toggleClass('active');
    jQuery('.menu ul').toggleClass('active');

    e.preventDefault();
    });
});

最佳答案

您在 .wrap 上有 overflow: hidden; 并且由于菜单是 position: absolute 并且溢出和显示在 .wrap 之外。

.wrap 中删除 overflow: hidden;(或将其设置为 overflow: visible;),菜单将显示。

关于jquery - 3行下拉菜单问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42937874/

相关文章:

c# - 如何在我的项目中使用 AntiXss?

jquery - Angular2 和 jQuery 插件完美地协同工作?

jquery随机旋转

javascript - 取消文件上传时删除图像预览

html - 添加文本时,使 div 容器自动向左扩展宽度,而不是向右扩展

html - 如何使用 HTML 和 CSS 创建浮雕边框?

html - 导航样式帮助

JQuery 将类添加到选定的 div,如果选择了另一个 div,则删除类

html - 右键单击 anchor 未在 IE 中显示预期的上下文菜单

css - Sharepoint 2013 将编辑限制为仅文本