javascript - 使汉堡菜单在菜单单击时消失

标签 javascript jquery html css hamburger-menu

如果屏幕宽度变得小于 860 像素,我会出现一个 JS 汉堡菜单。 从这个宽度开始,原始菜单变为堆叠式布局,当单击汉堡菜单图标时,该布局会滑出。单击汉堡菜单图标时,切换进出效果很好,但我希望它在用户单击菜单中的链接时自动消失。有办法吗?

这是相关的 HTML:

<header class="scroll-effect">

        <!-- Navigation bar -->

        <div class="navigation">

            <div class="container">

                <div class="row>">

                    <div class="six.columns">
                        <a href="index.html">
                            <img src="images/logo-nav.png" alt="BackupChecks Logo">
                        </a>
                    </div>

                    <div class="six.columns">
                    <nav>
                        <a href="#customer-portal" class="scroll-button">Customer Portal</a>
                        <a href="#service-desk" class="scroll-button">Service Desk</a>
                        <a href="#pricing" class="scroll-button">Pricing</a>
                        <a href="#contact" class="scroll-button">Contact</a>
                    </nav>
                    </div>

                </div>

            </div>

        </div>


        <!-- End of navigation bar -->


        <div class="header-contents">

        <h1>
            <img src="images/logo.png" alt="BackupChecks logo" class="animated bounceInDown">
        </h1>

        <h2 class="animated bounceInDown">
            The backup service desk for Asigra
        </h2>

        <div class="button-box animated fadeInUp">
            <a href="#learn-more" class="scroll-button button-green">
            Learn more
            </a>

            <a href="#pricing" class="scroll-button button-white-outline">
            Buy it now
            </a>

        </div>

        </div>

    </header>

    <!-- JS burger menu -->
        <img src="images/trigger.png" alt="Menu icon" class="trigger">
    <!-- </a> -->

这是相关的 CSS:

.navigation {
    background: rgba(255,255,255,1);
    height: 70px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    position: fixed;
    width: 100%;
    top: 0;
    z-index: +20;
    border-bottom: solid 1px #D9D9D9;
}

header.container {
    margin: 0 auto;
    max-width: 1000px;
}

.navigation img {
    vertical-align: middle;
    float: left;
    line-height: 70px;
    text-align: left;
}

nav {
    float: right;
    line-height: 70px;
}

nav a {
    color: #3E4750;
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 700;
    text-decoration: none;
    padding: 0 0 0 40px;
    display: inline-block;
    text-decoration: none;
    transition: color ease .4s;
}

nav a:hover {
    color: #66CC99;
}

@media screen and (max-width: 860px) {

nav {
    margin-top: 70px;
    background: #ffffff; 
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);

}

nav a {
        display: block;
        text-align: center;
        padding: 0 30px 0 30px;
        border-bottom: solid 1px #D9D9D9;
    }

nav {
     display: none;
}

img.trigger {
    display: block;
    position: fixed;
    top: 0px;
    right: 0px;
    }

}

这是我的 javascript:

$("img.trigger").on("click", function(){

    $("nav").slideToggle("slow");

});

最佳答案

只需将链接作为另一个触发器添加到 slideToggle,例如在单击任何 nav a 时也进行切换。

$("img.trigger, nav a").on("click", function(){

    $("nav").slideToggle("slow");

});

关于javascript - 使汉堡菜单在菜单单击时消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30502633/

相关文章:

javascript - 将 noConflict() 与 jquery 库一起使用

javascript - 使用单击处理程序更改函数内部的全局范围变量

javascript - 如何获取连接访问者到我网站的 IP 地址/位置,并向我显示他们的地址?

javascript - Magnolia 5.5.5 自定义内容编辑器应用程序(故事)自定义 CKEditor 配置

javascript - PhoneGap本地存储sql删除语句

javascript - Passport JS 无法检索用户

jquery - 多个表单、一次保存调用和多个同名输入元素

javascript - 如何使 jquery 之类的函数工作?

javascript - 为什么表格排序在我的 table 上不起作用? ( Ajax 表)

html - 带有百分比的 chrome 中的 css 边框半径错误