Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Cómo crear tooltips o nubes al pasar el mouse

Hola,
Primero ¿qué son tooltips? con tooltips me refiero a la nube o el mensaje que aparece al pasar el mouse por encima de un enlace.
<a href=" ">Enlace</a>
Estuve haciendo varias pruebas y bueno es un pequeño código que hice yo. Por el momento solo lo hago funcionar en enlaces de etiqueta a href=".." Bueno, así lo hice y lo comparto con ustedes :)

Primero, creamos los enlaces que queramos, yo crearé 3 enlaces y al lado de esos enlaces le agregaremos un div de clase tooltip (Esto es para que no todos los enlaces tengan tooltip sino solo los que nosotros queramos que tengan).
<a href="#">Enlace 1</a> <div class="tooltip"></div>
<a href="#">Enlace 1</a> <div class="tooltip"></div>
<a href="#">Enlace 1</a> <div class="tooltip"></div>
A las etiquetas de enlace, le agregaremos un atributo que creo que no existe pero cuando usemos jquery haremos que lo reconozca. A éste atributo yo le puse "data-tooltips", pero ustedes pueden colocarle como ustedes quieran, y como valor de ese atributo escribiremos lo que queremos que se muestre en la nubesita. Quedaría así.
<a href="#" data-tooltips="Ir a enlace 1">Enlace 1</a> <div class="tooltip"></div>
<a href="#" data-tooltips="Ir a enlace 2">Enlace 1</a> <div class="tooltip"></div>
<a href="#" data-tooltips="Ir a enlace 3">Enlace 1</a> <div class="tooltip"></div>

Bien, en el código CSS yo personalicé los tooltips de la siguiente forma, ustedes podrán cambiarlo a su gusto.
.tooltip {
	min-width: 100px;
	padding: 6px 10px 0px 10px;
	border-radius: 3px;
	background: rgba(0,0,0,0.8);
	color: white;
	font-size: 9pt;
	display: table;
	position: fixed;
	margin-top: 6px;
	z-index: 400;
}
.tooltip .arrow {
	width: 0px;
	height: 0px;
	border-bottom: 8px solid rgba(0,0,0,0.8);
	border-right: 8px solid transparent;
	border-left: 8px solid transparent;
	position: relative;
	bottom:27px;
	z-index: 300;
	-moz-transform: translate(0px, -3px);
}

--- Explico ésto rápido, en donde dice .tooltip . arrow { al final dice -moz-transform:translate(0px, -3px); eso se lo coloqué sencillamente porque en Google Chrome, se ve bien pero al correrlo en Mozilla Firefox, la flechita que acompaña a la nube se ve muy abajo y por lo tanto se ve feo, entonces para arreglarlo y que solo ocurra eso en Mozilla Firefox, agregué ese efecto. Hay que recordar que siempre debemos tratar de que se mantenga el mismo diseño en todos los navegadores y que no solo sirva en uno y en otro no. ---

Ahora vamos con el jquery. Recuerden que deben tener importado la librería jquery en su head.
<head>
      <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
Y en el mismo head escribiremos lo siguiente.
<script>
$(document).on("ready",function()
{
         $("a").each(function()
	{
		$(".tooltip").hide();
		$("a").on("mouseover",function()
		{
			content = $(this).attr("data-tooltip");
			$(".tooltip").each(function()
				{
					$(".tooltip").html(content+"<div class='arrow'></div>");
				});
		anchoElemento = $(this).offset();
 		$(this).next().fadeIn("fast").css(
                {
 			left: anchoElemento.left
 		});
			$(this).next().fadeIn("fast","linear");
		}).mouseout(function()
		{
			$(".tooltip").fadeOut("fast","linear");
		});
	});
});
</script>

El código jquery lo que dice es: "Para cada enlace, se mantendrán los tooltip escondidos y al pasar el mouse sobre el enlace, mostrarás el tooltip y cada tooltip contendrá escrito el valor del data-tooltip de su enlace más un div de clase arrow (o sea, añadirá la flechita) y se mostrará abajo a la izquierda de cada enlace. Y al sacar el mouse encima del enlace, esconder el tooltip".


Bueno espero que les sirva :D cualquier cosa díganme por aquí para ayudarlos.
A los aventureros, les invito desarrollar más ese pequeño código, si quieren hacerlo más genérico o que lo hagan funcionar en botones, divs, imágenes, etc.

5
Puntos
3098
Visitas
1
Resp
Por Jose hace 121 meses
Experto Sitio web
Respuesta #1
excelente aporte! gracias por compartir en cuanto tenga un rato lo pruebo
0
Puntos
Por alber hace 121 meses
Administrador
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate