Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

clique fora do menu para fechá-lo

Eu acho que entendi, mas gostaria de saber se alguém conseguiria explicar de alguma outra maneira sobre o funcionamento do clique fora do menu e como ocorre o fechamento dele.

document.documentElement.onclick = function(event) {
    if (event.target === document.documentElement) {
        document.documentElement.classList.remove('menu-ativo');
    }
};

"Um ponto interessante a se observar é como pegar eventos no pseudo-elemento. Como pseudo-elementos são coisas de CSS, eles não podem ser selecionados no JavaScript para colocar um evento de clique. A solução é colocar o evento no elemento pai (no caso, no

, acessado via document.documentElement). Todo clique no pseudo-elemento vai disparar em seu respectivo pai.

Mas é importante lembrar dos mecanismos de propagação de eventos do JS. Escutar cliques no

vai pegar todos os cliques na página, mesmo os do menu e outros elementos (afinal tudo é descendente de ). Para evitar isso, adicionamos o if que filtra a ação para executar apenas se o elemento clicado (target) for exatamente o e não algum filho interno, como menu."
1 resposta
solução!

Ola, Benicio. Tudo bem?

Neste caso, ja entrariamos em conceitos da linguagem JavaScript. Para que voce possa entender todo o codigo acima detalhadamente, indico que realize o curso de introducao ao JavaScript. Este curso ira destrinchar cada comando executado neste codigo acima e voce ira entender em detalhes a logica deste script.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software