1
resposta

Como implementar a funcionalidade de trocar imagem

Olá, pessoal, não estou conseguindo implementar a funcionalidade que altera a imagem do robô. Alguém pode me ajudar?

JavaScript:

const controle = document.querySelectorAll("[data-controle]")
const estatistica = document.querySelectorAll("[data-estatistica]")

const pecas = {
    "bracos": {
        "forca": 29,
        "poder": 35,
        "energia": -21,
        "velocidade": -5
    },

    "blindagem": {
        "forca": 41,
        "poder": 20,
        "energia": 0,
        "velocidade": -20
    },
    "nucleos":{
        "forca": 0,
        "poder": 7,
        "energia": 48,
        "velocidade": -24
    },
    "pernas":{
        "forca": 27,
        "poder": 21,
        "energia": -32,
        "velocidade": 42
    },
    "foguetes":{
        "forca": 0,
        "poder": 28,
        "energia": 0,
        "velocidade": -2
    }
}

controle.forEach( (elemento) => {
    elemento.addEventListener('click', (evento) => {
        manipulaDados(evento.target.textContent, evento.target.parentNode)
        atualizaEstatistica(evento.target.dataset.peca)
    })
})

function manipulaDados(operacao, controle) {
    const peca = controle.querySelector("[data-contador]")

    if(operacao === "-") {
        peca.value = parseInt(peca.value) - 1
    } else {
        peca.value = parseInt(peca.value) + 1
    }
}

function atualizaEstatistica(peca) {
    estatistica.forEach( (elemento) => {
        elemento.textContent = parseInt(elemento.textContent) + pecas[peca][elemento.dataset.estatistica]
    })
}



function trocaImagem(alterar){
    const imagemRobo = document.querySelector('#robotron');    //busca a imagem.
    imagemRobo.src=`img/roboAll${alterar}.png`
    }

Uma imagem padrão do robô aparece assim que a página é carregada, mas quando clico no botão para trocar, não aparece mas nenhuma imagem do robô. Tentei passar o HTML junto mas excedeu a quantidade de caracteres, mas posso passar caso seja necessário para essa dúvida.

1 resposta

Opa Renã. tudo bem?

Sentimos muito pela demora em obter uma resposta.

Pelo que percebi do seu código você está no caminho certo! Porém, por conta do código ser trabalhado em arquivos diferentes, poderia por gentileza em enviar o seu código completo?

Dessa forma posso analisar o seu código na totalidade e simular o problema para ajudá-lo de forma mais assertiva. Você pode enviar os demais códigos pelo fórum ou postar o link do GitHub onde está o seu projeto ou até mesmo o drive com os arquivos.

Fico à disposição.

Tenha um bom dia e bons estudos.