i want to make hamburger menu in my personal web with html, css, and javascript. This hamburger should be slide down when the screen-size width < 800px. But, when i clicked the hamburger, it doesn't work. What's wrong with my code..?i already tried the js file with document.querySelector(.hamburger) but it still didn't work.. please help me..
below is my nav code in html, my nav code when screen width <800px in css, and my js code:
<body>
<section class="content" id="home">
<div class="taskbar">
<h2 class="logo">Personal Web</h2>
<div class="hamburger">
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
</div>
<nav class="navbar">
<ul>
<li><a href="#home" class="active">Home</a></li>
<li><a href="#self-description" class="active">Self Description</a></li>
<li><a href="#interest" class="active">Interest</a></li>
<li><img src="img/moon.png" id="icon" class="active"></li>
</ul>
</nav>
</div>
.hamburger{
display: block;
cursor: pointer;
padding: 0 10px;
}
.hamburger .line{
width: 30px;
height: 3px;
background: #fefefe;
margin: 6px 0;
}
.navbar{
height: 0;
position: absolute;
top: 60px;
left: 0;
right: 0;
width: 100vw;
background-color: var(--navbar-color);
transition: 0.2s;
overflow: hidden
}
.navbar.active{
height: 25%;
margin: 0;
}
.navbar ul{
text-align: center;
display: block;
width: fit-content;
margin: 55px auto 0 auto;
transition: 0.5s;
opacity: 0;
}
.navbar ul li{
display: block;
font-size: 0.7rem;
}
.navbar.active ul{
opacity: 1;
}
.navbar ul li a{
margin-bottom: 12px;
color: aliceblue;
}
var hamburger = document.getElementsByClassName("hamburger");
document.body.classList.toggle("active")
hamburger.onclick = function() {
navBar = document.getElementsByClassName("navbar");
navBar.classList.toggle("active");
}