boa tarde! estou tentando por em prática o que venho aprendendo em JS, para isso comecei a fazer uma página html e no menu me surgiu uma dúvida que é como fechar o menu responsivo depois que clicar fora do menu ou mesmo se eu clicar novamente no ícone (hamburguer), segue meu código:
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta lang="Pt-br">
<meta name="viewport" content="width=device-width, initial scale=1">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Meu Primeiro</title>
</head>
<body>
<header>
Meusite.com
</header>
<nav>
<ul id="menu" class="lista-menu fecha-menu">
<li class="item-menu">
<a href="#">home</a>
</li>
<li class="item-menu">
<a href="#">curso</a>
</li>
<li class="item-menu">
<a href="#">contato</a>
</li>
<li class="item-menu">
<a href="#">sobre</a>
</li>
</ul>
<div class="hamburguer">
<button><img src="menu.svg"></button>
</div>
</nav>
<h1>Meu Primeiro programa!</h1><br>
Seria isso um programa?
<script src="menu.js">
</script>
</body>
</html>
style.css
body{
margin: 0px;
padding: 0px;
list-style: none;
line-height: 1em;
border: 0px;
font-family: Arial, Helvetica, sans-serif;
}
header{
height: 4em;
text-transform: uppercase;
display: flex;
margin: 0%;
align-items: center;
padding-left: 30px;
font-size: 30px;
background-color: paleturquoise;
}
nav{
background-image: linear-gradient(#000000, #cccccc);
width: 100%;
margin: 0%;
}
.lista-menu{
list-style: none;
display: block;
width: 100%;
padding: 0%;
margin: 0%;
}
.item-menu{
display: inline-block;
margin: 0px;
}
.item-menu a{
text-decoration: none;
color: white;
padding: 20px;
display: block;
}
.hamburguer{
display: none;
align-content: center;
}
.item-menu:hover{
background-color: #000000;
}
@media(max-width: 700px){
.fecha-menu{
display: none;
}
.hamburguer{
display: block;
text-align: center;
}
.hamburguer button{
background-color: transparent;
border: 0px;
}
.aparece-menu{
display: block;
text-align: center;
}
}
menu.js
let btn = document.querySelector(".hamburguer");
btn.addEventListener("click", function(){
let item = document.querySelector("#menu");
item.classList.remove("fecha-menu");
pegaLi = document.querySelectorAll(".item-menu");
console.log(pegaLi);
for(var i = 0; i < pegaLi.length; i++){
pegaLi[i].classList.add("aparece-menu");
}
});