如何在用户点击链接时关闭响应式全屏菜单?

时间:2016-01-10 14:54:11

标签: javascript html menu responsive-design fullscreen

我的单页面网站上有一个响应式菜单,当点击汉堡包图标时会显示透明的全屏菜单。当用户点击右上角的关闭按钮(X)时,全屏菜单关闭,所以一切正常。但由于我的大多数网站都是单页,因此菜单中的所有链接也是同一页面中的链接。当用户点击其中一个链接时,页面会按预期跳转,但透明的全屏菜单仍然保持全屏...

当用户点击链接时,菜单应该会在用户单击关闭按钮时完全消失。这是我试图解决的问题,我确信它只需要几行Javascript,但我不太流利于JS。

这是网站:

http://www.artegradesign.com

以下是相关代码(可能还有更多信息,不确定):

HTML

<div class="menu-btn"></div>
<nav>
    <ul>
        <li><a href="">Home</a></li>
        <li><a href="#about">About</a></li>
        <li><a href="#work">Work</a></li>
        <li><a href="#contact">Contact</a></li>
    </ul>
</nav>

CSS

.menu-btn {
cursor: pointer;
height: 60px;
width: 60px;
display: inline;
z-index: 99;
position: absolute;
top: 2px;
right: 5%;
}
.close-btn {
position: fixed;
z-index: 100;
}
nav {
position: fixed;
top: -1600px;
left: 0;
right: 0;
background-color: rgba(0,26,51,0.95);
transition: all 0.5s;
color: white;
min-height: 100%;
z-index: 99;
}
.open {
top: 0;
}

JS

$(document).ready(function(){
$('.menu-btn').click(function(){
    $('nav').toggleClass('open');
    $(this).toggleClass('close-btn');
    $('.container').toggle();
})
})

更新:我在点击链接时设法关闭了全屏菜单(使用下面的js),但它也使菜单按钮完全消失。所以我仍然需要一个英雄才能把它带回来!

$(document).ready(function(){
    $('nav li a').click(function(){
        $('nav').toggle();
    })
})

谢谢!

1 个答案:

答案 0 :(得分:1)

似乎不太理想如何处理点击事件,但是因为你只是在点击它时寻找切换(关闭和打开),你可以点击一个链接点击,触发菜单点击就像这样:

$('nav li a').on('click', function(){
    $('.menu-btn').trigger('click');
});

但我建议您使用导航的ID或特定类别。如果您在站点中的任何其他位置添加了带有无序链接列表的nav元素,则可能很容易中断。

相关问题