Jump to content
Sign in to follow this  
M.S.S

Mudando imagens com um Clique - onClick

Recommended Posts

Bom dia, Pessoal.
Tudo bem?

Preciso trocar uma imagem depois de um clique.
A minha ideia é manter a imagem nova no mesmo lugar da anterior depois do clique, mas com o "onclick" ativo para eu poder clicar na imagem de novo e a primeira imagem reaparecer no lugar da segunda.

 

Outro detalhe estou com uma programação que corta volume de um vídeo ativo no "button onclick", que esta funcionando e não pode parar de funcionar. Do jeito que eu configurei o "button onclick" do vídeo não parou de funcionar, mas a imagem não muda.

 

Tem como alguém me dar um help?

 

Javascript:

<script type="text/javascript">
function mudaImagem(i) {   

if (i == 1) {

 document.getElementById("imagem1").src="img/volume.jpg", 'style="display:block;"';

 document.getElementById("imagem2").src="img/mute.jpg", 'style="display:none;"';    

}  else if (i == 2) {       

 document.getElementById("imagem1").src="img/mute.jpg", 'style="display:block;"';        

 document.getElementById("imagem2").src="img/volume.jpg", 'style="display:none;"';    

    }  

}
</script>

 

HTML:

<button onclick="jQuery('#bgndVideo').toggleVolume()" ><img src="img/volume.jpg" alt="Som" id="imagem1" onclick="mudaImagem(1)" style="display:block;"/><img src="img/mute.jpg" alt="Som" id="imagem2" onclick="mudaImagem(2)" style="display:none;" /></button>

Grato!

Share this post


Link to post
Share on other sites

RESOLVIDO

function changeSrc(id) {
    var imagem=document.getElementById(id);
    if(imagem.alt == "Abrir"){
        imagem.src = "imagens/open.gif";
        imagem.alt = "Fechar";
    }
    else {
        imagem.src = "imagens/folder.gif";
        imagem.alt = "Abrir";
    }
}
<a href="#" onclick="changeSrc('p-a1');"><img id="p-a1" alt="Abrir" src="imagens/folder.gif">Link</a>

OU

<img id="botao" alt="Abrir" src="botoes/off.jpg" onclick="changeSrc('botao')" width="107" height="98" />

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By WagnerFilho
      Olá,
      Eu escrevi um exemplo de trabalho de um problema real que estou tentando resolver
      Criei um objeto simulando o retorno json que recebo do banco de dados.
       
      Eu preciso:
      Listar contratos e lotes de contratos Ao entrar na função, marcar o último `lote` do `contrato` como selecionado no Dropdown List Ao entrar na função, exibir as faturas `lote` e `contrato` selecionado no elemento `ul-invoices` Carregar e exibir as respectivas `faturas` ao alterar o `lote`  
      Problemas:
      Não consigo listar as `faturas` do último `lote` do `contrato selecionado` ao carregar a função. Não consigo listar as `faturas` ao `alterar` o `lote` do `contrato`  
      Observação:
      Ao entrar na página, já tenho as informações do contrato selecionado; no caso do exemplo, deixei o contrato com o ID 1. No exemplo estou usando a classe `in-attendance` para definir o contrato selecionado Estou usando `Revealing Pattern` e quero manter este padrão  
      Tradução
      contracts = contratos batches = lotes invoices = faturas  
      Exemplo
      <html> <label id="contracts"></label> <ul id="ul-invoices"></ul> <pre></pre> <script> let lblContract = document.querySelector('#contracts'); let UlInvoices = document.querySelector('#ul-invoices'); let contractInAttendance = 1; const objectContract = { id: 1, nome: 'wagner', contracts: [{ id: 1, contract: '123456', batches: [ { id: 1, contract_id: 1, batch: '1', invoices: [ { value: 10, batch_id: 1, }] }, { id: 2, contract_id: 1, batch: '2', invoices: [{ value: 10, batch_id: 2, }] }] }, { id: 2, contract: '246789', batches: [ { id: 3, contract_id: 2, batch: '1', invoices: [ { value: 20, batch_id: 3, }] }] }] } const revelling = (function() { function privateInit() { const contracts = objectContract.contracts; let contractFilteredById = contracts.filter(contract => contract.id === contractInAttendance); for (const contract of contracts) { const selectedContract = contract.id === contractFilteredById[0].id ? 'in-attendance' : ''; let htmlForBatchsOptions = contract.batches.map(batch => `<option value=${batch.id}>${batch.batch}</option>`).join(''); lblContract.innerHTML += `<div class="contract-${selectedContract}" style="display: flex;"> <div id="contract-${contract.contract}" data-contract="${contract.id}" class="loren"> <span>${contract.contract}</span> </div> <div class="ipsulum" style="margin-left: 5px;"> <select class="sel-batch"> ${htmlForBatchsOptions} </select> </div> </div>`; const batchOption = lblContract.querySelector('select.sel-batch'); batchOption.addEventListener('change', getInvoices); //batchOption.value = 2; } } function getInvoices() { const batchValue = event.target.value console.log(batchValue); //console.log(this.value); } return { init: privateInit() } })(); revelling.init; </script> </html>  
    • By Marlonsantos
      Olá pessoal, eu estou começando meu curso de programação Full Stack e tive a tarefa de fazer uma página mais parecida possível com essa. Mas estou com muita dificuldade na hora de colocar essa <DIV> branca dentro dessa <DiV> preta. Eu já consegui colocar os links nas imagens do Facebook e do Instagram, porém não consigo alinhar elas no canto direito, meu <h1> vem junto... Muito obrigado pela atenção galera

    • By mamotinho
      Olá, gostaria de sabe como posso fazer uma contagem regressiva apartir de um registro em meu banco de dados eu tentei montar um código da seguinte forma:

       
      <? $DateGET = date('m/d/Y H:i A', strtotime($result->DateDiscount)); ?> <script> var valueDate = <?=$DateGET?>; var end = new Date(valueDate); var _second = 1000; var _minute = _second * 60; var _hour = _minute * 60; var _day = _hour * 24; var timer; function showRemaining() { var now = new Date(); var distance = end - now; if (distance < 0) { clearInterval(timer); document.getElementById("countdown").innerHTML = "EXPIRED!"; return; } var days = Math.floor(distance / _day); var hours = Math.floor((distance % _day) / _hour); var minutes = Math.floor((distance % _hour) / _minute); var seconds = Math.floor((distance % _minute) / _second); document.getElementById("countdown").innerHTML = "<span class='n_date day' id='days'>" + days + "</span><span class='date'>일</span>"; document.getElementById("countdown").innerHTML += "<span class='n_time hour' id='hrs'>" + hours + "</span>"; document.getElementById("countdown").innerHTML += "<span class='n_time minute' id='minus'>" + minutes + "</span>"; document.getElementById("countdown").innerHTML += "<span class='n_time second' id='secs'>" + seconds + "</span>"; } timer = setInterval(showRemaining, 1000); </script> Mais infelizmente não passou a data registrada no banco de dados, alguém teria ideia de como posso ta fazendo.
    • By everton_araujo
      Boa noite pessoal, tudo bem?
      Gostaria de saber como mudo a propriedade target="_blank"
       para target="_system" via javascript. Muito obrigado.
       
      <a href="https://bemdiario.com/wp-content/uploads/2020/06/água-da-rocha.pdf" target="_blank" rel="noopener noreferrer nofollow" download="" class="jsx-936791898 eape-item-linkWrapper"><div class="jsx-936791898 eape-item-link">Baixar PDF</div></a>
    • By lumbarque_Oficial
      Tô a procura de uma equipe para participar 
       
      Sou programador, spriter ou músico
       
      meu nome é Gabriel , tenho 18 anos e já participei de uns grupo pequenos
       
      Sei de tudo um pouco mas a área que eu tô mais querendo botar a mão na massa atualmente é programação
       
      ~ alguém? ~
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.