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

[Dúvida] JavaScript deu ruim!

Na parte do JavaScript começou a dar um erro e não está dando certo a funcionalidade de esconder e mostrar o menu Lateral. Não sei nada de JavaScript e não estou conseguindo resolver, se alguém puder me ajudar agradeço muito.

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


botaoMenu.addEventListener('click' , () -> {
    menu.classList.toggle('menu-lateral--ativo')
})
4 respostas

Bom dia Maria,

No seu código, a forma correta é => e não ->

Show, muitíssimo obrigada!

Agora sumiu o erro, o botão está funcionando, porém, quando eu recarrego a página ele aparece visível, quando na verdade deveria estar escondido na posição inicial e só aparecer com o acionamento do botão. seguem os códigos, grata.

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <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="css/reset.css">
    <link rel="stylesheet" href="css/estilo.css">
</head>
<body>
    <header class="cabecalho">
        <button class="cabecalho__menu" aria-label="Menu"><i></i></button>
        <img src="img/logo.svg" alt="Logotipo da HCZ" class="cabecalho__logo">
        <button class="cabecalho__notificacao" aria-label="Notificação"><i></i></button>
    </header>
    <nav class="menu-lateral menu-lateral--ativo">
        <img src="img/logo.svg" alt="Logotipo da HCZ" 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--videos">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>
@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__logo {
    width: 40px;
}

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

.menu-lateral--ativo {
    left: 0;
}
const botaoMenu = document.querySelector('.cabecalho__menu')
const menu = document.querySelector('.menu-lateral')


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

É porque você adicionou manualmente a classe "menu-lateral--ativo" no seu HTML. Removendo vai funcionar do jeito esperado:

// DE:
<nav class="menu-lateral menu-lateral--ativo">

// PARA:
<nav class="menu-lateral">

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