Meu DOM fica assim:
<div id="d1">
<div class="c1">
<a href="#"><img src="img1_on.gif"></a>
<a href="#"><img src="img2_on.gif"></a>
</div>
</div>
Quando alguém clica em uma imagem, quero que a imagem src mude para <img src="imgx_off.gif">
onde x
representa o número da imagem 1 ou 2.
Isso é possível ou eu tenho que usar CSS para alterar as imagens?
javascript
jquery
image
user67033
fonte
fonte
19th July, 2016 15:39 PM
, a Pergunta Upvotes Count 369 e @jonstjohn Answer Upvotes Count 931 . Mas, que azar, o @OP não fez login depoisFeb 17 '09 at 2:57
.:(
E, @jonstjohn Resposta Permanecer Unmarked .Respostas:
Você pode usar a função attr () do jQuery . Por exemplo, se sua
img
tag tiver umid
atributo 'my_image', você faria o seguinte:Em seguida, você pode alterar a
src
imagem com o jQuery da seguinte maneira:Para anexar isso a um
click
evento, você pode escrever:Para girar a imagem, você pode fazer o seguinte:
fonte
Um dos erros mais comuns que as pessoas cometem ao alterar a fonte da imagem não está aguardando o carregamento da imagem executar ações posteriores, como a maturação do tamanho da imagem, etc. Você precisará usar o
.load()
método jQuery para fazer coisas após o carregamento da imagem.Motivo da edição: https://stackoverflow.com/a/670433/561545
fonte
Para maiores informações. Eu tento definir o atributo src com o método attr no jquery para a imagem do anúncio usando a sintaxe, por exemplo:
$("#myid").attr('src', '/images/sample.gif');
Esta solução é útil e funciona, mas se alterar o caminho, altere também o caminho da imagem e não está funcionando.
Estou procurando resolver esse problema, mas não encontrei nada.
A solução é colocar o '\' no início do caminho:
$("#myid").attr('src', '\images/sample.gif');
Esse truque é muito útil para mim e espero que seja útil para outros.
fonte
SE não houver apenas jQuery ou outras estruturas de eliminação de recursos - muitos kb para download de cada vez por usuário apenas por um truque simples - mas também JavaScript nativo (!):
Isso pode ser escrito de maneira geral e mais elegante:
fonte
Mostrarei como alterar a imagem
src
, para que, quando você clicar em uma imagem, ela gire por todas as imagens que estão no seu HTML ( especificamente no seud1
ID ec1
classe) ... se você tem 2 ou mais imagens no seu HTML .Também mostrarei como limpar a página depois que o documento estiver pronto, para que apenas uma imagem seja exibida inicialmente.
O código completo
O colapso
Crie uma cópia dos links que contêm as imagens (nota: você também pode usar o atributo href dos links para obter funcionalidades adicionais ... por exemplo, exibir o link de trabalho abaixo de cada imagem ):
Verifique quantas imagens estavam no HTML e crie uma variável para rastrear qual imagem está sendo mostrada:
Modifique o HTML do documento para que apenas a primeira imagem seja exibida. Exclua todas as outras imagens.
Vincule uma função a ser manipulada quando o link da imagem for clicado.
O coração do código acima está sendo usado
++$imgShow % $length
para percorrer o objeto jQuery que contém as imagens.++$imgShow % $length
primeiro aumenta nosso contador em um, depois modifica esse número com quantas imagens existem. Isso manterá o índice resultante alternando de0
paralength-1
, que são os índices do$images
objeto. Isso significa que esse código funcionará com 2, 3, 5, 10 ou 100 imagens ... percorrendo cada imagem em ordem e reiniciando na primeira imagem quando a última imagem for alcançada.Além disso,
.attr()
é usado para obter e definir o atributo "src" das imagens. Para escolher elementos de entre o$images
objecto, que definida$images
como o contexto jQuery utilizando o formulário$(selector, context)
. Então eu uso.eq()
para escolher apenas o elemento com o índice específico no qual estou interessado.Exemplo de jsFiddle com 3 imagens
Você também pode armazenar os
src
s em uma matriz.Exemplo de jsFiddle com 3 imagens
E aqui está como incorporar os hrefs das tags âncora nas imagens:
exemplo jsFiddle
fonte
Espero que isso possa funcionar
fonte
Você deve adicionar o atributo id à sua tag de imagem, assim:
então você pode usar este código para alterar a fonte das imagens:
fonte
Você também pode fazer isso com o jQuery desta maneira:
Você pode ter uma condição se houver vários estados para a fonte da imagem.
fonte
Eu tive o mesmo problema ao tentar chamar o botão re captcha. Após algumas pesquisas, agora a função abaixo funciona bem em quase todos os navegadores famosos (chrome, Firefox, IE, Edge, ...):
'theUrl' é usado para renderizar uma nova imagem captcha e pode ser ignorado no seu caso. O ponto mais importante é gerar uma nova URL que força o FF e o IE a renderizar novamente a imagem.
fonte
Alterar a fonte da imagem usando jQuery
click()
elemento:
código:
fonte
fonte
Hoje tenho a mesma maravilha, fiz dessa maneira:
fonte
Esta é uma maneira garantida de fazê-lo em JavaScript Vanilla (ou simplesmente puro):
fonte
Apenas uma adição, para torná-lo ainda mais pequeno:
fonte
Não há como alterar a fonte da imagem com CSS.
A única maneira possível é usar Javascript ou qualquer biblioteca Javascript como o jQuery .
Lógica-
As imagens estão dentro de uma div e não existem
class
ou estãoid
com essa imagem.Portanto, a lógica será selecionar os elementos dentro do local
div
onde as imagens estão localizadas.Em seguida, selecione todos os elementos das imagens com loop e altere a imagem src com Javascript / jQuery .
Código de exemplo com saída de demonstração
fonte