Я довольно новичок в JavaScript и решил закодировать меню, которое открывается / раскрывается при нажатии кнопки и закрывается при повторном нажатии кнопки.
У меня все работает, но я не могу показаться чтобы узнать, почему меню не закрывается.
Вот мой код:
Любая помощь или руководство очень ценится! Я включил мои HTML, CSS и JS файлы.
let toggleNavStatus = false;
let toggleNav = function (){
let getSideBar = document.querySelector(".nav-sidebar");
let getSideBarUl = document.querySelector(".nav-sidebar ul");
let getSideBarUTitle = document.querySelector(".nav-sidebar span");
let getSideBarLinks = document.querySelectorAll(".nav-sidebar a");
if(toggleNavStatus === false){
getSideBarUl.style.visibility = "visible";
getSideBar.style.width = "295px";
getSideBarTitle.style.opacity = "0.5";
let arrayLenght = getSideBarLinks.length;
for(let i = 0; i < arrayLenght; i++){
getSideBarLinks[i].style.opacity = "1";
}
toggleNavStatus = true;
} else if(toggleNavStatus === true){
getSideBarUl.style.visibility = "hidden";
getSideBar.style.width = "50px";
getSideBarTitle.style.opacity = "0";
let arrayLenght = getSideBarLinks.length;
for(let i = 0; i < arrayLenght; i++){
getSideBarLinks[i].style.opacity = "0";
}
toggleNavStatus = false;
}
}
body {
background-color: #F1F1F1;
}
.nav-main{
width: 100%;
height: 60px;
background-color: #FFF;
display: flex;
flex-wrap: wrap;
z-index: 1000;
position: fixed;
top: 0;
}
.btn-toggle-nav{
width: 60px;
height: 100%;
background-color: #f98f39;
background-size: 50%;
background-position: center;
cursor: pointer;
position: fixed;
left: 0;
}
.btn-toggle-nav:hover{
opacity: 0.5;
}
.nav-main ul{
display: flex;
flex-wrap: wrap;
padding-left: 60px;
}
.nav-main ul li{
list-style: none;
line-height: 30px;
}
.nav-main ul li a{
display: block;
height: 100%;
padding: 0 10px;
text-transform: uppercase;
text-decoration: none;
color: #111;
font-family: Arial;
font-size: 16px;
}
.nav-sidebar{
position: fixed;
left: 0;
bottom: 0;
width: 50px;
padding: 0 5px;
height: calc(100vh - 60px);
background-color: #1B1B1B;
z-index: 1000;
}
.nav-sidebar ul{
padding-top: 15px;
overflow: hidden;
visibility: hidden;
}
.nav-sidebar ul li{
line-height: 60px;
list-style: none;
}
.nav-sidebar ul li span, ul li a{
display: block;
height: 60px;
padding: 0 10px;
text-decoration: none;
text-transform: uppercase;
color: #FFF;
font-family: arial;
font-size: 16px;
white-space: nowrap;
opacity: 0.5;
}
.nav-sidebar ul li a:hover{
background-color: #222;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ZiGi's Toggle Menu</title>
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="resetstyle.css">
</head>
<body>
<nav class="nav-main">
<div class="btn-toggle-nav" onclick="toggleNav()"></div>
<ul>
<li> <a href="#"> Home</a> </li>
<li> <a href="#"> Portfolio</a> </li>
<li> <a href="#"> About Us</a> </li>
<li> <a href="#"> Gallery</a> </li>
<li> <a href="#"> Contact</a> </li>
</ul>
</nav>
<aside class="nav-sidebar">
<ul>
<li> <span>Projects</span></li>
<li> <a href="#"> Making a Website </a> </li>
<li> <a href="#"> SEAO Optimizing Video </a> </li>
<li> <a href="#"> Walking Through The Park </a> </li>
<li> <a href="#"> Just Another Day</a> </li>
</ul>
</aside>
</body>
<script src="main.js"> </script>
</html>