Para contextualizar: Nessa aula, quando o botão "abre menu" é clicado, é adicionada a classe "menu-ativo" na tag html e com isso aparece uma barra lateral com z-index: 1 e width 90%;
Nessa aula, foi pedido para adicionar isso no css:
.menu-ativo:after {
content: "";
display: block;
position: fixed;
top: 0;
left: 0;
bottom: 0;
right: 0;
background: rgba(0,0,0,0.4);
}
A lógica aqui é deixar toda a página preta com opacidade 40%, mas o menu lateral não fica preto por causa do z-index: 1, certo? Entendi a lógica corretamente?
Depois, o professor coloca um evento para quando for clicado fora do menu, o html perca a tag "menu-ativo". Esse é o código:
document.documentElement.onclick = function(event) {
if (event.target === document.documentElement) {
document.documentElement.classList.remove('menu-ativo');
}
};
Não entendi porque ele evita a ativação do evento quando eu clico no menu lateral (que também faz parte da html), mas funciona sempre que eu clico na parte fora do menu, mesmo que o meu clique seja sobre um link, ou uma imagem.