Los tooltips son componentes de interfaz de usuario que muestran información contextual al interactuar con elementos HTML, como al pasar el ratón o hacer clic.
Atributos principales
Los tooltips se configuran mediante atributos HTML personalizados de Bootstrap 4:
| Atributo | Descripción |
|---|---|
title |
Contenido de texto que se mostrará en el tooltip. |
data-trigger |
Define el evento de activación: click, hover, focus o manual. |
data-html |
Permite contenido HTML en el tooltip cuando se establece en true; usar con precaución. |
data-delay |
Retraso en milisegundos antes de mostrar el tooltip. |
data-animation |
Habilita o deshabilita animaciones al mostrar/ocultar. |
data-container |
Especifica el contenedor del tooltip, como body, para evitar problemas de diseño. |
data-placement |
Posición del tooltip: top, bottom, left, right o auto. |
Ejemplo básico de inicialización
Para activar tooltips, se necesita inicializarlos con JavaScript:
<a href="#" class="enlace-info" title="Información adicional" data-placement="top" data-trigger="hover">Pasa el ratón aquí</a>
<script>
$(document).ready(function(){
$('.enlace-info').tooltip();
});
</script>
Tooltips con contenido HTML
Se puede habilitar soporte para HTML estableciendo data-html="true":
<button class="btn-ayuda" title="<strong>Título</strong><p>Descripción detallada.</p>" data-html="true" data-trigger="click">Ayuda</button>
<script>
$(document).ready(function(){
$('.btn-ayuda').tooltip();
});
</script>
Configuración avanzada con opciones JavaScript
Los tooltips se pueden personalizar mediante un objeto de opcionse:
$('.mi-elemento').tooltip({
contenido: 'Texto alternativo',
posicion: 'right',
formatoHtml: false,
animar: true,
retraso: { mostrar: 200, ocultar: 100 },
activador: 'hover',
contenedor: 'body',
plantilla: '<div class="tooltip-custom"><div class="flecha"></div><div class="contenido"></div></div>'
});
Uso de selectores para delegación
Los tooltips se pueden aplicar dinámicamente a elementos dentro de un contenedor:
<div class="contenedor-dinamico">
<a href="#" class="item" title="Primer item">Item 1</a>
<a href="#" class="item" title="Segundo item">Item 2</a>
</div>
<script>
$('.contenedor-dinamico').tooltip({
selector: '.item',
activador: 'focus'
});
</script>
Personalización de estilos
Se puede modificar la apariencia del tooltip mediante plantillas y CSS:
<style>
.tooltip-personalizada .flecha::before {
border-color: #3498db;
}
.tooltip-personalizada .contenido {
background-color: #3498db;
color: white;
padding: 5px;
}
</style>
<a href="#" class="enlace-estilizado" title="Tooltip con estilo">Enlace</a>
<script>
$('.enlace-estilizado').tooltip({
plantilla: '<div class="tooltip-personalizada"><div class="flecha"></div><div class="contenido"></div></div>'
});
</script>
Métodos programáticos
Bootstrap 4 proporciona métodos para controlar los tooltips:
// Mostrar tooltip
$('.elemento').tooltip('show');
// Ocultar tooltip después de un retraso
setTimeout(function(){
$('.elemento').tooltip('hide');
}, 3000);
// Alternar visibilidad
$('#boton-toggle').on('click', function(){
$('#tooltip-asociado').tooltip('toggle');
});
Eventos
Los tooltips disparan eventos durante su ciclo de vida:
| Evanto | Descripción |
|---|---|
show.bs.tooltip |
Se dispara al iniciar la visualización del tooltip. |
shown.bs.tooltip |
Se dispara después de que el tooltip es completamente visible. |
hide.bs.tooltip |
Se dispara al iniciar el ocultamiento del tooltip. |
hidden.bs.tooltip |
Se dispara después de que el tooltip está completamente oculto. |