I have a responsive navigation bar. On mobile view, when I click the hamburger the navbar-active class moves the navbar from
transform: translateX(-100%);
to transform: translateX(0);
Now when I click on any anchor link, I want the navigation bar to go to back to transform: translateX(-100%);
So I made a function for it:
navLink.addEventListener('click', () => {
nav.classList.remove('navbar-active');
});
But the console is showing:
navLink.addEventListener is not a function
Here is the HTML
<ul class = 'navbar'>
<li class = 'nav-link'><a href = '#about' tabindex = '-1'>link-1</a></li>
<li class = 'nav-link'><a href = '#ebooks' tabindex = '-1'>link-2</a></li>
<li class = 'nav-link'><a href = '#blog' tabindex = '-1'>link-3</a></li>
</ul>
Here is the JavaScript
const navSlide = () => {
const burger = document.querySelector('.burger');
const nav = document.querySelector('.navbar');
const navLink = document.querySelectorAll('.nav-link');
burger.addEventListener('click', () => {
nav.classList.toggle('navbar-active');
});
navLink.addEventListener('click', () => {
nav.classList.remove('navbar-active');
});
}
navSlide();
Things I tried to solve it:
It works when I use
const navLink = document.querySelector('.nav-link');
instead ofconst navLink = document.querySelectorAll('.nav-link');
but it works only on first element.I tried to add
const navLink = document.querySelectorAll('.nav-link a');
but no luck again.
I'm a beginner in JavaScript. Any help would be appreciated. Thank you.