1
resposta

Possivel Resolução

Retirei o botão inicial e coloquei dois embaixo usando o data-lista para marcalos. inicialmente tinha colocado nomes no data-lista mas retirei porque nao usei. deixei sem valor

<body>
  <ul class="lista">
    <li cor="laranja" tipo="tinta-exterior" class="item">Tinta laranja</li>
    <li cor="vermelho" tipo="tinta-interior" class="item">Tinta vermelha</li>
    <li cor="branco" tipo="tinta-interior" class="item">Tinta branca</li>
    <li cor="amarelo" tipo="tinta-exterior" class="item">Tinta amarela</li>
    <li cor="rosa" tipo="tinta-exterior" class="item">Tinta rosa</li>
    <li cor="preto" tipo="tinta-exterior" class="item">Tinta preta</li>
  </ul>

      <button data-lista>--ESCONDER--</button>
      <button data-lista>--MOSTRAR--</button>

      <script src="main.js"></script>
</body>
No Javascript a variavel botao recebe o data-lista do html, e a variavel ul recebe a classe .lista da tag ul dentro do html

o botao[0] do array espera o evento de clique e altera o css para 'none' o botao[1] do array espera o evento de clique e altera o css para 'block'

// botao recebe array de 'data-lista' 
// lista recebe a classe lista na tag ul do html
let botao = document.querySelectorAll("[data-lista]")
let ul = document.querySelector(".lista")

// se o botao0 for clicado muda o estilo para none e esconde tudo
botao[0].addEventListener('click', () => {
    ul.style.display = "none"
})
// se o botao1 for clicado muda o estilo para block e mostra tudo
botao[1].addEventListener('click', () => {
    ul.style.display = "block"
})
/* LOGICA DO addEventListener
     addEventListener (OQUE ESPERAR,  OQUE FAZER){
        roteiro
     }
*/

ainda tenho dificuldade com a linguagem e vou comentando no codigo oque esta acontecendo. aberto para criticas e sugestoes.

1 resposta

Bom dia Cassio tudo bem? Eu também resolvi utilizando CSS conforme código abaixo. Ficou um pouco mais reduzido do que o seu, mas acredito que a proposta seria utilizar o que aprendemos nas aulas ne?

Segue códigos

Html

retirei o this da função

 <button onclick="mostraTintas(this)" class="botao">
      Aluratintas em estoque:
    </button>

CSS

// restante do código acima normal, add class 'esconder'

.esconder {
  display: none;
}

JS seleciona a lista, add/remove a class 'esconder' ao clicar no botão.

let lista = document.querySelector('.lista');
function mostraTintas() {
  lista.classList.toggle('esconder');
}

Vamos nos ajudando a aprender. Abraços