1
resposta

Tentando aplicar o JS nos itens do menu Hambúrguer

O professor ensinou a marcar um ícone do menu como estando selecionado, mas não mostrou como fazer a transição de um para o outro e como iniciar desmarcado. Quando usamos o código que ele passou sempre fica ativo!!!Insira aqui a descrição dessa imagem para ajudar na acessibilidadeEstou tentando fazer esse processo ficar dinâmico, porem não estou tendo sucesso.

código html: `

<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="../flex-e-grid-main/assets/css/reset.css">
<link rel="stylesheet" href="../flex-e-grid-main/assets/css/estilo.css">


<title>HZC home</title>
<header class="cabecalho">
    <button class="cabecalho__menu" aria-label="menu"><i></i></button>
    <img src="assets/img/logo.svg" alt="logotipo HZC" class="cabecalho__logo">
    <button class="cabecalho__notificacao" aria-label="notificação"><i></i></button>
</header>

<nav class="menu-lateral">
    <img src="assets/img/logo.svg" alt="" class="menu-lateral__logo">
    <a href="#" class="menu-lateral__link menu-lateral__link--inicio ">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>
`

código 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__logo{
    width: 40px;
}


.menu-lateral{
    display: flex;
    flex-direction: column;

    background-color: #15191c;
    width: 75vw;
    height: 100vh;

    position: absolute;
    left: -100vw;
    transition: .25s;
}
.menu-lateral--ativo{
    left: 0;
    transition: .25s;
}
.menu-lateral__logo{
    align-self: center;
    width: 118px;
    padding: 16px;
}
.menu-lateral__link{
    display: flex;
    align-items: center;

    height: 64px;
    color: #95999c;
    padding-left: 64px;


}

/*menu hambuger inicio*/
.menu-lateral__link--ativo{
    color: #ffffff;
    padding-left: 56px;
    border-left: 8px solid #ffffff;
    transition: .25s;
}
.menu-lateral__link::before{
    content: "\e900";
    width: 24px;
    height: 24px;
    font-size: 24px;
    position: absolute;
    left: 24px;
}

.menu-lateral__link--inicio::before{
    content: "\e902";
}
.menu-lateral__link--videos::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";
}

código JavaScript:

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

btnMenu.addEventListener('click', () =>{
    menu.classList.toggle('menu-lateral--ativo')
})


const btnHambugerMenu = document.querySelector('.menu-lateral')
const hamburgerMenu = document.querySelector('.menu-lateral__link')

btnMenu.addEventListener('click', () =>{
    hamburgerMenu.classList.toggle('menu-lateral__link--ativo')
})
1 resposta

Opa Hugo! Tudo bem?

Sentimos muito pela demora em obter uma resposta.

Analisando e testando seu código, não me ocorreu o erro apresentado de iniciar marcado, o código roda e funciona tranquilamente, o erro pode estar ocorrendo por conta de outra parte do código, sendo assim, para que eu possa te auxiliar de forma mais assertiva, peço que por gentileza compartilhe o link do seu projeto completo, de preferência via Github.

Ademais, não compreendi quando comenta “como fazer a transição de um para outro”, se puder comentar mais informações sobre o problema, que transição? A transição do que para o quê?

Fico à disposição.

Tenha um bom dia e bons estudos.

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