Olá,
Para resolver o desafio de mudar a cor do Robotron eu fiz os seguintes passos:
- Adicionei um data-attribute na imagem do robô
<section class="robotron">
<img class="robo" src="img/robotron.png" alt="Robotron" id="robotron" data-robo>
<figcaption class="titulo">ROBOTRON <br>2000</figcaption>
</section>
- Depois o peguei o elemento no arquivo JS
const roboImg = document.querySelector("[data-robo]")
- Daí eu inseri as imagens dos robôs, mudei os nomes e criei um array com os nomes.
- Peguei o src do elemento para saber qual a imagem que está sendo exibida
- usei o split pra me retornar o nome do arquivo e o indexOf para pegar a posição dele no meu array
- se for a última posição ele retorna zero, senão pega o index + 1
- com esse valor ele coloca a próxima imagem no src do robô
roboImg.addEventListener("click", (evento) => {
let corAtual = evento.target.src.split("img");
let novaCor = robotron.indexOf("img"+corAtual[1]) === 5 ? 0 : robotron.indexOf("img"+corAtual[1]) + 1
evento.target.src = robotron.at(novaCor)
})
const robotron = ["img/robotron.png","img/Robotron-Branco.png","img/Robotron-Amarelo.png", "img/Robotron-Preto.png",
"img/Robotron-Rosa.png","img/Robotron-Vermelho.png"]
Esse código faria sentido em um ambiente de produção? Obrigado