Reputation: 1
This is the navbar html code:
<nav id="navbar">
<ul class="menu">
<li class="logo"><a href="#"><img src="img/LOGO JS BLANCO PNG.png"></a></li>
<li class="item"><a href="#home">Home</a></li>
<li class="item"><a href="#about">About</a></li>
<li class="item"><a href="#portfolio">Portfolio</a></li>
<li class="item"><a href="#knowledge">Knowledge</a></li>
<li class="item"><a href="#experience">Experience</a></li>
<li class="item"><a href="#contact">Contact</a></li>
<li class="toggle"><a href="#nowhere"><i class="fas fa-bars"></i></a></li>
</ul>
</nav>
This is the navbar js code:
const toggle = document.querySelector(".toggle");
const menu = document.querySelector(".menu");
/* Toggle mobile menu */
function toggleMenu() {
if (menu.classList.contains("active")) {
menu.classList.remove("active");
toggle.querySelector("a").innerHTML = "<i class='fas fa-bars'></i>";
} else {
menu.classList.add("active");
toggle.querySelector("a").innerHTML = "<i class='fas fa-times'></i>";
}
}
/* Event Listeners */
toggle.addEventListener("click", toggleMenu, false);
for (let item of items) {
item.addEventListener("keypress", toggleItem, false);
}
I want navbar to be closed when I click on a menu option. Any solution here? thanks
Upvotes: 0
Views: 37
Reputation: 207501
You can add the click to the menu instead of just the .toggle link
const toggle = document.querySelector(".toggle");
const menu = document.querySelector(".menu");
/* Toggle mobile menu */
function toggleMenu() {
menu.classList.toggle("active");
const icon = toggle.querySelector("a i.fas");
icon.classList.toggle('fa-bars');
icon.classList.toggle('fa-times');
}
/* Event Listeners */
menu.addEventListener("click", toggleMenu, false);
#navbar .item {
display: none;
}
#navbar .menu.active .item {
display: list-item;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css" rel="stylesheet"/>
<nav id="navbar">
<ul class="menu">
<li class="logo">
<a href="#"><img src="img/LOGO JS BLANCO PNG.png"></a>
</li>
<li class="item"><a href="#home">Home</a></li>
<li class="item"><a href="#about">About</a></li>
<li class="item"><a href="#portfolio">Portfolio</a></li>
<li class="item"><a href="#knowledge">Knowledge</a></li>
<li class="item"><a href="#experience">Experience</a></li>
<li class="item"><a href="#contact">Contact</a></li>
<li class="toggle"><a href="#nowhere"><i class="fas fa-bars"></i></a></li>
</ul>
</nav>
Upvotes: 1