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

Ativar modo noturno

Oiê! Estou tentando criar um modo noturno para um site que fiz, mas não estou conseguindo ativar a função no javascript.

<nav class="navbar">
        <div class="navbar__container">
            <a href="/" id="navbar__logo">SWEET PET</a>
            <div class="navbar__toggle" id="mobile-menu">
                <span class="bar"></span>
                <span class="bar"></span>
                <span class="bar"></span>
            </div>
            <ul class="navbar__menu">
                <!-- Button dark mode -->
                <li>
                    <button class="btn__darkmode">
                        <i class="fas fa-moon"></i>
                    </button>
                </li>
                <li class="navbar__item">
                    <a href="/" class="navbar__links"> Home </a>
                </li>
                <li class="navbar__item">
                    <a href="../Pet love/products.html" class="navbar__links"> Products </a>
                </li>
                <li class="navbar__item">
                    <a href="/" class="navbar__links"> Our Team </a>
                </li>
                <li class="navbar__btn">
                    <a href="../sweet_pet/signup.html" class="button"> Login </a>
                </li>
            </ul>
        </div>
    </nav>
CSS 
.darkmode{
    background: #2b2929;
}
js

const darktheme = document.getElementsByClassName ('darkmode');

darktheme.addEventListener("click", function() {
    var darkmode = document.darkmode
} )

Honestamente, to bem perdida, mas to tentando aqui

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas
solução!

Fala Isabel, tudo bem? Espero que sim!

Há três possiveis erros:

Sendo o primeiro, você está selecionando a classe errada, no seu html você utiliza aclasse btn__darkmode no botão e no seu javascript você seleciona a classe darkmode, sendo assim não é possivel encontrar e adicionar o evento ao botão.

Outro erro é você utilizar o getElementsByClasseName que retorna uma array de elementos que possuem aquela classe, sendo que na verdade você quer selecionar apenas um elemento, então recomendo utilizar o querySelector que seleciona apenas um elemento.

Um outro erro é que ao clicar no botão deveria ser adicionada um classe ao body, porém você tenta acessar uma propriedade inexistente no document, você pode fazer essa alteração de classe assim:

const darktheme = document.querySelector ('btn__darkmode');

darktheme.addEventListener("click", function() {
    document.body.classList.toggle("darkmode")
} )

Utilizando classList.toggle que adiciona a classe se ja não tiver, e remove se ja tiver a classe naquele elemento.

Caso não tenha entendido muito bem, você pode fazer o curso JS na Web: Manipule o DOM com JavaScript que te ajudará nessa questão de manipulação de dom.

Espero ter ajudado, abraços e bons estudos :D

Olá Isabel ! Tudo bem ? O que você precisa fazer primeiro é buscar o ** botão ** que será clicado na sua página. Nesse caso o "btn__darkmode"

depois precisa criar uma variavel para ele no seu JavaScript por exemplo:

const botaoTema = document.querySelector(".btn__darkmode");

Agora basta adicionar um evento de click no botão e uma função para quando for clicado adicionar sua class darkmode no elemento que deseja. Por exemplo:

botaoTema.addEventListener('click', function(){
    let meuSite = document.querySelector('body');

    meuSite.classList.toggle("darkmode");
})