Cargando...

10 abril 2012

Un tooltip que se desliza en los enlaces

En CSS Globe nos muestran la forma de crear un tooltip* muy animado en cualquier enlace, con animado quiero decir que el tooltip que se desplaza a lo largo y ancho del contenido del enlace, y funciona con la ayuda de jQuery. Me gusta porque de algún modo promueve el uso del atributo title en los enlaces, ya que el tooltip mostrará el contenido o texto que se ponga en dicho atributo. Voy a usar el primer ejemplo a petición de Dante.

Este tooltip se desliza al mover el cursor del mouse sobre el elemento en el que se aplique, y aunque lo explican para aplicarlo en el texto de un enlace, se puede usar en una imagen que tenga un enlace.

Puedes verlo en acción en este blog donde dice "Tooltip en enlaces" (en la columna lateral) o en la primer entrada. También puedes ver el resultado en la imagen, aunque, mejor echa un vistazo al blog con el ejemplo, ya que aquí te perderás de la acción.

tooltip en enlaces

Cómo agregar el tooltip a cualquier enlace


1. Necesitas tener agregado en la plantilla jQuery antes de </head>, si ya lo tienes, puedes actualizarlo por su última versión, que hasta el día de hoy es la siguiente, y que lo descargamos desde la librería de Google:
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' type='text/javascript'/>
2. Luego, necesitas agregar este script inmediatamente después de jQuery (del código anterior)...

<script type='text/javascript'>
//<![CDATA[
/*
 * for more info visit http://cssglobe.com/post/1695/easiest-tooltip-and-image-preview-using-jquery
 */
this.tooltip=function(){xOffset=10;yOffset=20;$("a.tooltip").hover(function(e){this.t=this.title;this.title="";$("body").append("<p id='tooltip'>"+this.t+"</p>");$("#tooltip").css("top",(e.pageY-xOffset)+"px").css("left",(e.pageX+yOffset)+"px").fadeIn("fast")},function(){this.title=this.t;$("#tooltip").remove()});$("a.tooltip").mousemove(function(e){$("#tooltip").css("top",(e.pageY-xOffset)+"px").css("left",(e.pageX+yOffset)+"px")})};$(document).ready(function(){tooltip()});
//]]>
</script>

Cómo funciona. Lo que hace el script, es tomar el contenido del atributo "title" que está dentro de la etiqueta "a" (que hace que se cree el enlace) y lo muestra en el tooltip.

3. Después, necesitas agregar el CSS, que puedes cambiar para darle la apariencia que quieras al tooltip, y lo agregas yendo a Plantilla > Personalizar > Avanzado > Añadir CSS :

#tooltip{position:absolute;background:#000;padding:2px 5px;color:#333;display:none;opacity:.8;filter:alpha(opacity=80)}

En este caso, el color de fondo del tooltip es negro (background:#000;)y el color del texto es blanco(color:#fff;).También agregamos opacidad para darle transparencia, opacity:.8; y para que se vea la transparencia en Internet Explorer versión 8 y anteriores: filter:alpha(opacity=80).


4. Finalmente usaremos este HTML, que tendrá el enlace, de otro modo no fucionará (ver explicación de como funciona el script). Lo podemos poner en un gadget con la opción de HTML/Javascript, o en una entrada del blog.

Para el texto del enlace:
<a href="#" class="tooltip" title="El contenido del tooltip">El texto del enlace</a>
Para la imagen con enlace:
<a href="#" class="tooltip" title="El contenido del tooltip"><img src="URL_de_la_imagen" alt="" /></a>
Donde está la almohadilla "#", se pone la dirección web a donde se va a dirigir cuando se haga click sobre enlace/imagen. En el resto de lo que tienes que editar y que está resaltado de rojo, dice que ponerse.

El uso del tooltip en el caso de las imágenes con enlace

Recuerda que en tooltip debería mostar de algún modo la naturaleza del enlace, agregando información adicional a éste.


Por ejemplo, supongamos que pones una imagen (fotografía) en la columna lateral, de cuando fuiste a Disneyland, en donde estás abrazando a Mickey Mouse, entonces pondrías el atributo title al enlace (en la etiqueta a) con esta información, por ejemplo: "Leer mi aventura en Disneyland este verano", y  enlace te enviará al post contando tu aventura. De ese modo el usuario sabrá que al hacer click en la imagen, podrá leer tu aventura.

Tanto las imágenes (la etiqueta img) como los enlaces (la etiqueta a) admiten el atributo "title". Lo ideal sería poner el atributo title a la imagen, puesto que lo que se ve es ésta,  pero lo agregamos dentro de la etiqueta a para funcione el tooltip (que también es válido).

*Un tooltip, es un texto que emerge al poner el puntero del ratón sobre un enlace o una imagen, y el texto que aparece es el que se ha puesto en el atributo title, aunque se puede simular un tooltip sin usar dicho atributo.


Lecturas recomendadas:
El atributo title de los enlaces
El atributo title de los enlaces
El atributo title en las imágenes
Usando atributo title y alt en las imágenes



No olvides suscribirte, para recibir todas mis actualizaciones, directamente a tu email.

Ingresa tu correo electrónico:

Recuerda confirmar tu suscripción, haciendo click en el enlace que recibirás por email.

16 comentarios :

  1. Gracias Karla lo estaba esperando!
    Saludos

    ResponderEliminar
    Respuestas
    1. Es verdad tu también me habías comentado que querías algo así...

      Pues mucha Suerte CocinaCoco ;)

      Eliminar
    2. Hola Kar!ya lo probe y queda muy bien!!solo una cosita,la letra apenas se ve en blanco,deberia hacer el tooltip mas transparente?cuando puedas verlo te dejo el enlace donde lo puse http://www.cocinacoco.com.ar/2011/11/truchas-rellenas-con.html (en la imagen del video)
      besito!

      Eliminar
    3. ¿Te refieres a que no se puede leer?; bueno, no precisamente, si le das mas transparencia menos se va a ver, puedes quitar la transparencia del fondo si quitas estas lineas:

      opacity:.8;filter:alpha(opacity=80)

      O Cambiar el color de fondo y la fuente, probando otros...

      Eliminar
  2. ola!
    your blog is so useful for other bloggers;))
    i like your contents;))

    i follow you;))

    amy

    ResponderEliminar
  3. No, no me funciona en noticiassobregoogle.blogspot.com pero si me funciona en http://sabiduri.blogspot.com ¿Sabes porque me pasa eso, porque en gooooooooogleando no lo puedo ver??

    ResponderEliminar
    Respuestas
    1. Dante, no tengo idea de porque no te funciona, puedes ser tantísimas cosas: (1)que hayas pegado mal el código, (2) que lo hayas puesto incompleto, (3)que algún otro código en tu plantilla lo afecte etc,etc, pero, como puedes comprobar en el otro blog, el tooltip si funciona...

      En el blog que mencionas no lo tienes nada agregado, por lo que no puedo decirte nada...

      Eliminar
  4. Que interesante Karla!

    Me gustaría que conocieras mi proyecto de blog: www.tutoxpc.com

    Que tal te parece?...

    Saludos!

    ResponderEliminar
  5. Hola Karla! Estoy usando tu plantilla Versatile y puse en practica este tutorial, el problema viene a ser que desaparecen las flechas del menú deslizante de arriba, algo que no ocurre con las entradas populares de abajo, que tienen el mismo efecto, ¿sabes a qué es debido?
    Mi blog es: http://kgenspain.blogspot.com.es/ y lo he usado en los afiliados

    Gracias! :)

    ResponderEliminar
    Respuestas
    1. Hola Ireth,

      Podría ser por que estás agregando jQuery dos veces y sólo lo tienes que poner una sola vez. De oto modo tendrás problemas. También tienes que cuidar el orden en el que colocas jQuery y los scripts que funcionan con éste. Primero se pone jQuery y abajo los scripts.

      Eliminar
    2. De verdad, que tonta soy a veces XDD. Sí, era eso, había dos jQuery.
      El orden lo hice como lo explicas en el tutorial, así que no era nada de eso.

      Gracias!! :)

      Eliminar
  6. Hola , he instalado todo tal cual y si bien me funciona solo lo ejecuta bien un maximo de 4 veces que paso con el puntero sobre un mismo enlace, despues se vuelve una linea sin el texto, no entiendo que es lo que pasa, podrias tirarme ideas, gracias.

    ResponderEliminar
    Respuestas
    1. Hola Hector,

      Es difícil saberlo cuando no se ve el resultado, asegúrate de no tener instalado jQuery dos veces, asegúrate que el orden del script sea el adecuado (las funciones, plugins etc, dentro de la etiqueta script deberían estar debajo de jQuery), también pudiera ser que otro script que uses lo afecte, etc.

      Eliminar
    2. Gracias, Karla. Solucionado funciona perfecto.
      pro-punta.blogspot.com

      Eliminar
  7. Este comentario ha sido eliminado por el autor.

    ResponderEliminar