Olá Pedro, tudo bem?
Gostaria de agradecer por enviar o seu projeto, dessa forma, pois ajuda muito a encontrar a solução do erro.
No seu código o erro está acontecendo por conta de um certa confusão e devemos reformular alguns passos como o de seleção de Elementos, pois os,
Os seletores utilizados para capturar os botões e os slides não estão corretos, o que pode resultar em elementos incorretos sendo selecionados.
Verificando se seletores .listaDeArtigos-slider-item
e .listaDeArtigos-item
estão selecionando corretamente os botões e os slides, respectivamente. Isso pode ser feito inspecionando o HTML ou imprimindo os elementos selecionados no console para garantir que estão corretos.
Outro erro foi a lógica para mostrar os Slides. Foi necessário ajustar a lógica para exibir os slides corretamente quando os botões são clicados. Isso pode ser feito associando cada botão a um slide específico com base em seu índice.
Por fim a manipulação do Indicador do Slide Atual, isso pode envolver a adição e remoção da classe de indicador ativo, bem como a atualização do conteúdo do indicador.
Depois de alguns testes cheguei nessa solução e funcionou aqui:
Código Final:
// Variáveis
var btns = document.querySelectorAll('.listaDeArtigos-slider-item');
var noticias = document.querySelectorAll('.listaDeArtigos-item');
var indicadorSlideAtual = document.createElement('span');
indicadorSlideAtual.classList.add('escondeVisualmente');
indicadorSlideAtual.textContent = 'Slide Atual';
// Adiciona evento de clique para cada botão
btns.forEach(function(btn, index) {
btn.addEventListener('click', function() {
// Remove a classe ativa de todos os botões
btns.forEach(function(btnRemoveClass) {
btnRemoveClass.classList.remove('listaDeArtigos-slider-item--ativo');
});
this.classList.add('listaDeArtigos-slider-item--ativo');
noticias.forEach(function(noticia) {
noticia.style.display = 'none';
});
noticias[index].style.display = 'block';
if (this.querySelector('.escondeVisualmente')) {
this.querySelector('.escondeVisualmente').remove();
}
this.appendChild(indicadorSlideAtual);
});
});
Seu código deu até uma reduzida, digamos assim.
Espero ter ajudado e reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!
Sucesso ✨
Um grande abraço e até mais!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!