Howdy,
I am pretty much new to Javascript, previously built my navs on jQuery before taking a couple of years break from web design.
However I have been playing with flexbox and it’s capabilities, can somebody explain where I am going wrong?.. The hamburger toggle should be clicking to display the ul list.
jsfiddle - https://jsfiddle.net/7q98mepv/1/
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta2/css/all.min.css" integrity="sha512-YWzhKL2whUzgiheMoBFwW8CKV4qpHQAEuvilg9FAn5VJUDwKZZxkJNuGM4XkWuk94WCrrwslk8yWNGmY1EduTA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" type="text/css" href="assets/css/main.css">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<nav class="navigation-bar">
<div class="container">
<div class="logo">
<span class="black">JS</span>
<span class="red">Test</span>
</div>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Shop</a></li>
<li><a href="#">Contact</a></li>
</ul>
<div class="nav-menu">
<i class="fa-solid fa-bars"></i>
</div>
</div>
</nav>
/* NAV BAR */
nav {
width: 100%;
height: 100px;
background: #ffffff;
}
nav .container {
display: flex;
justify-content: space-between;
height: 100%;
padding: 10px;
}
.logo {
font-family: '01 Digitall';
font-size: 40px;
text-transform: uppercase;
display: flex;
height: 100%;
align-items: center;
}
.logo .black {
color: #000000;
}
.logo .red {
color: #e74c3c;
}
.nav-menu {
display: flex;
height: 100%;
align-items: center;
display: none;
}
nav ul {
display: flex;
height: 100%;
align-items: center;
}
nav li {
padding-left: 30px;
}
nav a {
color: #000000;
}
@media (max-width: 1008px) {
nav {
position: relative;
}
/*
.logo {
}*/
.nav-menu {
display: flex;
font-size: 30px;
}
nav ul {
flex-direction: column;
right: 0;
top: 100%;
background: #ecf0f1;
display: none;
height: auto;
position: absolute;
width: 100%;
}
nav li {
padding: 10px 0px 10px;
}
nav a {
color: #000;
}
.contact-item {
font-size: 14px;
padding: 10px;
}
}
const toggleButton = document.getElementsByClassName('nav-menu')[0];
const menu = document.getElementsByClassName('ul')[0];
console.log(toggleButton);
toggleButton.addEventListener('click', () => {
menu.classList.toggle('nav-menu')
})