Necesito cambiar la <img>
URL de origen enhover
.
He intentado esto pero no funcionará:
HTML
<img id="my-img" src="http://dummyimage.com/100x100/000/fff"/>
CSS
#my-img:hover {
content: url('http://dummyimage.com/100x100/eb00eb/fff');
}
Cualquier ayuda sería apreciada.
Actualizar:
Esto solo funciona para Webkit / Google Chrome.
content
solo funciona con:before
o:after
por lo que esto no va a funcionar. ¿Por qué no usar undiv
con una imagen de fondo y cambiar esa imagen de fondo?DIV
.content:
único funciona con:before
o:after
img
etiqueta y simplemente eliminarlasrc
de tu imagen. Aunque eso es un poco extraño, funcionará. @HamedKamrava: ¿Solo puedes usar una imagen o puedes usar otra cosa?:before
o:after
clases seudo a su usocontent:url(...)
. Actualización: esto solo funciona para Webkit / Google Chrome.Respuestas:
Con solo html y css, no es posible cambiar el src de la imagen. Si reemplaza la etiqueta img con la etiqueta div, entonces es posible que pueda cambiar la imagen que se establece como fondo como
Y si cree que puede usar algún código javascript, entonces debería poder cambiar el src de la etiqueta img como se muestra a continuación
fuente
<img src="..." style="visibility: hidden" />
He modificado algunos cambios relacionados con Patrick Kostjens.
MANIFESTACIÓN
http://jsfiddle.net/ssuryar/wcmHu/429/
fuente
Tuve un problema similar pero mi solución fue tener dos imágenes, una oculta (pantalla: ninguna) y otra visible. Al pasar el cursor sobre un tramo circundante, la imagen original cambia para mostrar: ninguna y la otra imagen para mostrar: bloque. (Podría usar 'en línea' en su lugar dependiendo de sus circunstancias)
Este ejemplo utiliza dos etiquetas de intervalo en lugar de imágenes para que pueda ver el resultado al ejecutarlo aquí. Desafortunadamente, no tenía ninguna fuente de imágenes en línea para usar.
fuente
span#initial
en lugar despan[id="initial"]
Lo que podría hacer es hacer una pequeña trampa configurando
width
yheight
en 0 para ocultar la imagen real y aplicar algo de CSS para hacer lo que quiera:Y el relleno hace que la
img
etiqueta tenga el tamaño que desea que tenga (la mitad del tamaño de su imagen real).Violín
fuente
Aquí hay un enfoque alternativo que utiliza CSS puro. La idea es incluir ambas imágenes en el marcado HTML y mostrarlas u ocultarlas en consecuencia en: hover
HTML
CSS
jsfiddle: https://jsfiddle.net/m4v1onyL/
Tenga en cuenta que las imágenes utilizadas son de las mismas dimensiones para una visualización adecuada. Además, los tamaños de archivo de estas imágenes son bastante pequeños, por lo que cargar varios no es un problema en este caso, pero puede serlo si desea alternar la visualización de imágenes de gran tamaño.
fuente
En cuanto a la semántica, no me gusta ninguna solución dada hasta ahora. Por lo tanto, personalmente uso la siguiente solución:
Esta es una solución única de CSS con buena compatibilidad con el navegador. Utiliza una envoltura de imagen que tiene un fondo que inicialmente está oculto por la propia imagen. Al pasar el mouse, la imagen se oculta a través de la opacidad, por lo que la imagen de fondo se vuelve visible. De esta manera, uno no tiene un contenedor vacío sino una imagen real en el código de marcado.
fuente
Tengo una solución más. Si alguien usa AngularJs: http://jsfiddle.net/ec9gn/30/
El Javascript:
Sin CSS ^^.
fuente
Tuve un problema similar: quiero reemplazar la imagen en: hover pero no puedo usar BACKGRUND-IMAGE debido a la falta del diseño adaptativo de Bootstrap.
Si me gusta, solo quiero cambiar la imagen en: hover (pero no insistir en cambiar SRC para la etiqueta de imagen determinada), puede hacer algo como esto: es una solución solo de CSS.
HTML:
CSS:
Si desea un código compatible con IE7, puede ocultar / mostrar: la imagen HOVER posicionando no por opacidad.
fuente
Dado que no puede cambiar
src
con CSS: si jQuery es una opción para usted, verifique este violín.Manifestación
Básicamente está usando el
.hover()
método ... se necesitan dos funciones para que funcione. Cuando ingresa al hover y cuando sale de él.Estamos usando la
.attr
(abreviatura de atributo) para cambiar elsrc
atributo.Vale la pena señalar que necesita la biblioteca jQuery incluida como en el violín para que esto funcione.
fuente
Violín
De acuerdo con la respuesta de AshisKumar,
hay una manera de cambiar la URL de la imagen al pasar el mouse usando la funcionalidad jQuery como se muestra a continuación:
fuente
a
condisplay:block
de div? El iniciador del tema quería cambiar elsrc
atributo de aimg
travéscss
y no un recorrido.Personalmente, optaría por una de las soluciones JavaScript / jQuery. Esto no solo mantiene su semántica HTML (es decir, una imagen se muestra como un elemento img con su imagen src habitual definida en el marcado), sino que si usa una solución JS / jQuery, también podrá usar JS / jQuery para precargar su imagen flotante.
La precarga de la imagen flotante significará que es probable que no haya demoras en la descarga cuando el usuario pase el mouse sobre la imagen original, lo que hará que su sitio se comporte de manera mucho más profesional.
Significa que tiene una dependencia de JS, pero la pequeña minoría que no tiene JS habilitado probablemente no se preocupará demasiado, y todos los demás obtendrán una mejor experiencia ... ¡y su código también será bueno!
fuente
No puede cambiar
img
elsrc
atributo de la etiqueta usandoCSS
. Posible usando el controlador de eventos de Javascriptonmouseover()
.HTML:
Javascript:
fuente
No puede cambiar el src de img usando css. Sin embargo, puede usar la siguiente solución css pura. HTML:
CSS:
O, si no desea usar un div con una imagen de fondo, puede usar una solución javascript / jQuery. HTML:
jQuery:
fuente
Para esto, puede usar el siguiente código
1) html
2) css
fuente
En navegadores más antiguos,
:hover
solo funcionaba con<a>
elementos. Entonces tendrías que hacer algo como esto para que funcione.fuente
El siguiente código funciona tanto en Chrome como en Firefox
fuente
Aquí tienes una solución CSS pura. Coloque la imagen visible en la etiqueta img, coloque la segunda imagen como fondo en el CSS y luego oculte la imagen al pasar el mouse.
fuente
La mejor forma de cambiar la
src
imagen es:Vea la demostración en vivo: http://www.audenaerde.org/csstricks.html#imagereplacecss
¡Disfrutar!
fuente
Pruebe este código.
fuente
¡Existe otra forma sencilla de usar HTML y CSS únicamente!
Simplemente envuelva su
<img>
etiqueta con div así:Luego, en su archivo CSS, oculte el img y establezca la imagen de fondo para el elemento div de envoltura:
Et voilà!
fuente