Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Menu não aparece

No meu projeto o menu lateral não aparece quando clico no ícone.

Abaixo está os 3 códigos

HTML

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>HZC | Home</title>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&display=swap">
    <link rel="stylesheet" href="assets/css/reset.css">
    <link rel="stylesheet" href="assets/css/estilos.css">
</head>
<body>
    <header class="cabecalho">
        <button class="cabecalho_menu" aria-label="Menu"><i></i></button>
        <img class="cabecalho_img" src="assets/img/logo.svg" alt="Logotipo da HZC">
        <button class="cabecalho_notificacao" aria-label="Notificação"><i></i></button>
    </header>
    <nav class="menu-lateral">
        <img src="assets/img/logo.svg" alt="Logotipo da HZC " class="menu-lateral_logo">
        <a href="#" class="menu-lateral_link menu-lateral_link-inicio menu-lateral_link--ativo">Início</a>
        <a href="#" class="menu-lateral_link menu-lateral_link-video">Vídeos</a>
        <a href="#" class="menu-lateral_link menu-lateral_link-picos">Picos</a>
        <a href="#" class="menu-lateral_link menu-lateral_link-integrantes">Integrantes</a>
        <a href="#" class="menu-lateral_link menu-lateral_link-camisas">Camisas</a>
        <a href="#" class="menu-lateral_link menu-lateral_link-pinturas">Pinturas</a>
    </nav>
    <script src="index.js"></script>
</body>
</html>

CSS

@font-face {
    font-family: 'icones';
    src: url(../font/icones.ttf);
}

body {
    background-color: #1D232A;
    font-family: 'Open Sans', "icones", sans-serif;
    color: #FFFFFF;
}

.cabecalho {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #15191C;
  padding: 8px 16px;
  box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.16);
}

.cabecalho_menu i::before {
  content: "\e904";
  font-size: 24px;
}

.cabecalho_notificacao i::before {
  content: "\e906";
  font-size: 24px;
}

.cabecalho_img {
  width: 40px;
}

.menu-lateral {
  display: flex;
  flex-direction: column;
  background-color: #15191C;
  width: 75vw;
  height: 100vh;

  position: absolute;
  left: -100vw;
}

.menu-lateral--ativo {
  left: 0;
}

.menu-lateral_logo {
  width: 118px;
  align-self: center;
  padding: 16px;
}

.menu-lateral_link {
  height: 64px;
  color: #95999C;
  padding-left: 64px;
  display: flex;
  align-items: center;
}

.menu-lateral_link--ativo {
  color: #FFFFFF;
  padding-left: 56px;
  border-left: 8px solid #FFFFFF;
}

.menu-lateral_link::before {
  content: "";
  width: 24px;
  height: 24px;
  font-size: 24px;
  position: absolute;
  left: 24px;
}

.menu-lateral_link-inicio::before {
  content: "\e902";
}

.menu-lateral_link-video::before {
  content: "\e90e";
}

.menu-lateral_link-picos::before {
  content: "\e909";
}

.menu-lateral_link-integrantes::before {
  content: "\e903";
}

.menu-lateral_link-camisas::before {
  content: "\e900";
}

.menu-lateral_link-pinturas::before {
  content: "\e90a";
}

JavaScript

const botaoMenu = document.querySelector('.cabecalho_menu')
const Menu = document.querySelector('.menu-lateral')

botaoMenu.addEventListener('click', () => {
    menu.classList.toggle('.menu-lateral--ativo');
})
2 respostas
solução!

Boa tarde chefao, retira o ponto dentro da função classList. como esta: botaoMenu.addEventListener('click', () => { menu.classList.toggle('.menu-lateral--ativo'); })

como deve estar: botaoMenu.addEventListener('click', () => { menu.classList.toggle('menu-lateral--ativo');})

nesta função você esta injetando uma nova class dentro do html, ele nao vai aceitar o "." junto.

Boa tarde Luan! Muito Obrigado pela ajuda.