Foros del Web » Creando para Internet » CSS »

mostrar imagen al pasar el ratón por encima

Estas en el tema de mostrar imagen al pasar el ratón por encima en el foro de CSS en Foros del Web. Hola foro vecino!!! Desconozco si lo que intento hacer se puede hacer en css pero ya que no estoy seguro mejor lo pregunto por aquí. ...
  #1 (permalink)  
Antiguo 13/12/2013, 22:38
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
mostrar imagen al pasar el ratón por encima

Hola foro vecino!!! Desconozco si lo que intento hacer se puede hacer en css pero ya que no estoy seguro mejor lo pregunto por aquí.

Estoy creando una base de datos con información sobre cartas de un juego, cuando tenga la base de datos mostrará una tabla con una lista, pero al poner el ratón sobre el nombre de la carta me gustaría que mostrara la imagen de dicha carta sin necesidad de hacer click sobre ella.

Un ejemplo claro es el siguiente: http://es.hearthhead.com/tooltips

justo ahí si ponéis el ratón donde pone: Gelbin Mekkatorque veréis como aparece la imagen de esa carta.

Esa web ofrece un script para implementarlo pero obviamente al hacer click irian a su web y eso no es lo que necesito.

Se puede realizar ? ¿ Como se realizaría si no es muy difícil ?

Un saludo y gracias de antemano!!!
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #2 (permalink)  
Antiguo 13/12/2013, 22:47
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: mostrar imagen al pasar el ratón por encima

Saludos rodry.

Ahí usan JavaScript para conseguir ese efecto. En CSS se podría hacer, lo de mostrar una imagen al pasar por encima de un enlace de esta forma:

Código HTML:
Ver original
  1. <a href="#">
  2.   meooow
  3.   <img src="gato.jpg">
  4. </a>

Sería un enlace que contiene una imagen.

Código CSS:
Ver original
  1. a {
  2.   position: relative;
  3. }
  4.  
  5. img {
  6.   position: absolute;
  7.   top: 100%;
  8.   left: 100%;
  9.   display: none;
  10. }
  11.  
  12. a:hover img {
  13.   display: block;
  14. }

Esa imagen no se muestra, sólo hasta que se pase por encima del enlace.



Lo malo con esto es que tienes que poner la imagen dentro del enlace, y la página que dices creo que lo cargan mediante AJAX toda la información que muestran.
  #3 (permalink)  
Antiguo 14/12/2013, 03:03
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Hola, a parte de como dice pzin existe un plugin llamado Jquery Tooltip y aunque es para mostrar texto también lo he visto con imágenes alguna vez.
;)
  #4 (permalink)  
Antiguo 14/12/2013, 08:47
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: mostrar imagen al pasar el ratón por encima

Y como siempre pzin... Muchisimas gracias, voy a intentar probarlo a ver si me funciona!!
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #5 (permalink)  
Antiguo 15/12/2013, 01:26
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: mostrar imagen al pasar el ratón por encima

pzin!!! tu ayuda me funcionó perfectamente, pero creo que entra en conflico con algo...me explico

ahora cuando inserto alguna imagen dentro de una tabla que muestro en la misma página estas no aparecen.

El codigo que me diste funciona perfecto pero puede ser que entre en conflicto cada vez que intento añadir alguna imagen que si que quiero que se muestre siempre ??
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #6 (permalink)  
Antiguo 15/12/2013, 02:21
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: mostrar imagen al pasar el ratón por encima

Si lo pusiste tal cual si. Porque ahí se seleccionan todas las imágenes.

Usa alguna clase para diferenciarlo, por ejemplo:

Código HTML:
Ver original
  1. <a class="con_imagen" href="#">
  2.   meooow
  3.   <img src="gato.jpg">
  4. </a>

Código CSS:
Ver original
  1. a.con_imagen {
  2.   position: relative;
  3. }
  4.  
  5. a.con_imagen img {
  6.   position: absolute;
  7.   top: 100%;
  8.   left: 100%;
  9.   display: none;
  10. }
  11.  
  12. a.con_imagen:hover img {
  13.   display: block;
  14. }

Será por esto lo del otro hilo ¿no?
  #7 (permalink)  
Antiguo 15/12/2013, 09:10
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: mostrar imagen al pasar el ratón por encima

Si que se trata de eso, pero ahora tengo un problema!! tengo tantas "" y '' en el código php que al añadir el estilo parece que entran en conflicto con otras "" o '' y no muestra nada una vez guardo..

Me explico. Ahora mismo lo tengo así

Código PHP:
Ver original
  1. echo "  <td align=left><a href='#'>".$fila['nombre']."<img src='".$fila['rutaimg']."'></a></td>";

Añadiendo la clase se quedaría así

Código PHP:
Ver original
  1. echo "  <td align=left><a class="con_imagen" href="#">".$fila['nombre']."<img src='".$fila['rutaimg']."'></a></td>";

Pero no funciona, dejandolo así no funciona el código. Como véis hay una parte a la derecha en gris, se ve que no funciona. Tiene que haber algo mal de las comillas pero no lo localizo!!


EDITO: SOLUCIONADO: Ha quedado así

Código PHP:
Ver original
  1. echo "  <td align=left>"."<a class='con_imagen' href='#'>".$fila['nombre']."<img src='".$fila['rutaimg']."'></a></td>";
__________________
No te olvides de dar +1 a quien te echa un cable ;)

Última edición por rodrypaladin; 15/12/2013 a las 09:20
  #8 (permalink)  
Antiguo 15/12/2013, 09:51
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: mostrar imagen al pasar el ratón por encima

PHP tiene un caracter de escape para concatenar comillas.

Código PHP:
Ver original
  1. $variable="\"hola mundo\"";

Personalmente, jamás imprimo el HTML como haces tú.
Soy más de :

Código PHP:
Ver original
  1. <td align="left">
  2.     <a class="con_imagen" href="#"><?php echo $fila['nombre']; ?><img src="<?php echo $fila['rutaimg']; ?>"></a>
  3. </td>

Y así, además de tener mas o menos separado el HTML de la lógica del PHP, no necesito usar el caracter de escape.

Me imagino que habrás hecho una consulta, y con un while estás recorriendo los fetchs imprimiendo resultados y pintando HTML, ¿no?
Tampoco lo haría así. Mejor:

Código PHP:
Ver original
  1. $datos=array();
  2. $query = "SELECT * FROM tabla";
  3. $result = $mysqli->query($query);
  4. while($fila = $result->fetch_assoc())
  5. {
  6.     $datos[] = $fila;
  7. }


Y luego donde vayas a imprimir el HTML:
Código PHP:
Ver original
  1. <table>
  2. <?php
  3. foreach ($datos as $fila) { ?>
  4. <td align="left">
  5.     <a class="con_imagen" href="#"><?php echo $fila['nombre']; ?><img src="<?php echo $fila['rutaimg']; ?>"></a>
  6. </td>
  7. <?php } ?>
  8. </table>

Así queda separado la lógica de la aplicación de la lógica de la vista, y todos viviremos felices comiendo perdices.

Última edición por marlanga; 15/12/2013 a las 10:02
  #9 (permalink)  
Antiguo 15/12/2013, 11:07
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: mostrar imagen al pasar el ratón por encima

Gracias por el consejo, veré si puedo implementarlo con tu método que seguramente sea mejor, pero mis conocimientos son básicos, pero se agradece mucho.

Por otro lado pzin!!! puedes ver el ejemplo aqui http://www.guiashearthstone.com/bdca...uevoserver.php de como va quedando. Por otro lado cuando pongo el ratón encima del nombre de la carta y me muestra la imagen perfectamente lo hace justo debajo del nombre, no podría subirse un poco para que aparezca más centrado al nombre ?? Si lo pruebas en los que están más abajo, ves que se tapa una parte de la carta

Mil gracias!
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #10 (permalink)  
Antiguo 15/12/2013, 12:00
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: mostrar imagen al pasar el ratón por encima

Si, sólo tendrías que añadirle a la imagen algo así:

Código CSS:
Ver original
  1. transform: translateY(-50%)

Con prefijos propietarios quedaría algo como:

Código CSS:
Ver original
  1. img {
  2.   position: absolute;
  3.   top: 50%;
  4.   left: 100%;
  5.   display: none;
  6.   -webkit-transform: translateY(-50%);
  7.   -moz-transform: translateY(-50%);
  8.   -ms-transform: translateY(-50%);
  9.   -o-transform: translateY(-50%);
  10.   transform: translateY(-50%);
  11. }
  #11 (permalink)  
Antiguo 15/12/2013, 12:41
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: mostrar imagen al pasar el ratón por encima

Perfecto!!! Mil gracias!!!
__________________
No te olvides de dar +1 a quien te echa un cable ;)

Etiquetas: encima
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:00.