下拉汉堡包菜单响应

时间:2015-11-30 20:44:57

标签: javascript html css drop-down-menu scroll

我创建了一个带有着名汉堡图标的下拉导航菜单。当页面加载时和/或向下滚动页面之前,它会完美地下降,但是如果我向下滚动然后向上滚动,当我点击图标时它会将导航ul列表切成两半,不再显示它是什么在滚动之前做了。 我不知道为什么会这样做。

这是剧本:

<script>
 $(document).ready(function (){
  $('.nav-btn').on("click", function() {
    $('#main-nav').slideToggle("slow");
     $(window).resize(function() {
        if($(window).width() > 600) {
            $("#main-nav").removeAttr("style");
            }
        });
    });
    });
</script>

这是HTML(标题内):

<span class="nav-btn"></span>
    <nav id="main-nav">
        <ul>
            <li><a href="#home" class="scroll">HOME</a></li>
            <li><a href="#about" class="scroll">ABOUT</a></li>
            <li><a href="#portfolio" class="scroll">PORTFOLIO</a></li>
            <li><a href="#contact" class="scroll">CONTACT</a> </li>
        </ul>
    </nav>  

这是CSS:

#main-nav {
    text-align: center;
    display: none;
    background-color: #F1F1F1;
}

#main-nav li {
    display: block;
    border-bottom: 5px #565656 solid;
    padding: 5px 0 5px 0;
}

#main-nav li:last-child {
    border-bottom: none;
}

#main-nav ul li {
    font-size: 1em;
    font-family: 'montserratregular';
    text-align: left;
}

.nav-btn {
    display: block;
    background-color: #F1F1F1;
    color: #333;
    font-size: 40px;
    text-align: left;
    cursor: pointer;
}

.nav-btn:before {
    content: url("hamburger.png");
    padding-left: 15px;
}

1 个答案:

答案 0 :(得分:0)

你有一个javascript,它在#headwrapper div上应用了130px的高度。

<div id="headwrapper" class="" style="height: 130px;">

当我取下130px时,菜单正常运行。它似乎是添加它onscroll所以当我滚动回到顶部javascript再次启用它。尝试将其更改为height: auto或不设置固定高度,请尝试将其设置为height: auto; max-height: 1000px;或类似的东西。这应该照顾你遇到的问题。

编辑*:我建议您在max-height: 75px;上添加.small并在height: auto; max-height: 1000px;上添加#headwrapper,而不是像您一样更改内联高度。如果你在css-transition中使用它,它应该会给你带来与现在相同的效果。