Заставить меню гамбургера исчезать при щелчке меню
У меня есть меню бургера JS, которое появляется, если ширина экрана становится меньше, чем 860 пикселей. Начиная с этой ширины, исходное меню превращается в сложенный макет, который выдвигается при нажатии на значок меню бургера. Включение и выключение прекрасно работает при нажатии на значок меню бургера, но я бы хотел, чтобы он автоматически исчезал, когда пользователь щелкает ссылку в меню. Есть ли способ сделать это?
Это соответствующий 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");
});
1 ответ
Решение
Просто добавьте ссылки как еще один триггер slideToggle
например, также переключаться, когда любой nav a
нажата.
$("img.trigger, nav a").on("click", function(){
$("nav").slideToggle("slow");
});