How do you close a modal event in Bootstrap?

Cerrar Modales de Bootstrap: Guía Completa

hace 10 años

★★★★★Valoración: 4.19 (7666 votos)

Los modales de Bootstrap son componentes esenciales para mostrar contenido relevante al usuario de forma interactiva y centrada en la tarea. Saber cómo cerrarlos correctamente es crucial para una buena experiencia de usuario. En este artículo, exploraremos a fondo las diferentes maneras de cerrar un modal de Bootstrap, desde los métodos más sencillos hasta opciones de configuración más avanzadas. Aprenderás a controlar el comportamiento de cierre de tus modales y a adaptarlos a las necesidades específicas de tu proyecto web.

Índice de Contenido

Métodos para cerrar un modal de Bootstrap

Bootstrap ofrece varias formas de cerrar una ventana modal, brindando flexibilidad a los desarrolladores para elegir la que mejor se adapte a cada situación:

1. Botón de cierre (data-dismiss="modal")

La forma más común y visible para el usuario de cerrar un modal es mediante un botón de cierre. Este botón, generalmente ubicado en la cabecera del modal, utiliza el atributo data-dismiss="modal" para activar la funcionalidad de cierre. Al hacer clic en este botón, Bootstrap automáticamente oculta el modal.

How to close Bootstrap modal popup?
Clicking on the modal “backdrop” will automatically close the modal.
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 

Este botón suele representarse con un icono de "x" o la palabra "Cerrar". Es altamente recomendable incluir siempre un botón de cierre en tus modales para facilitar la interacción del usuario y cumplir con las expectativas de usabilidad.

2. Clic en el fondo o "backdrop"

Por defecto, Bootstrap permite cerrar un modal simplemente haciendo clic fuera de la ventana modal, en el área oscurecida que se conoce como "backdrop". Este comportamiento intuitivo permite al usuario cerrar el modal de forma rápida si ha terminado de interactuar con él o si lo ha abierto por error. Para que este método funcione, no se requiere ninguna configuración adicional, es el comportamiento predeterminado de Bootstrap.

3. Tecla Escape (Esc)

Otra forma de cerrar un modal de Bootstrap sin interacción directa con botones es presionando la tecla Escape (Esc) en el teclado. Este método, también activado por defecto, ofrece una alternativa rápida y accesible para cerrar el modal, especialmente útil para usuarios avanzados que prefieren el uso del teclado.

4. API de Javascript (.modal('hide'))

Para un control más programático sobre el cierre de modales, Bootstrap proporciona una API de Javascript. El método .modal('hide') permite cerrar un modal mediante código Javascript. Esto es especialmente útil cuando necesitas cerrar el modal en respuesta a eventos específicos dentro de tu aplicación, como la finalización exitosa de un formulario dentro del modal o después de realizar alguna acción.

$('#miModal').modal('hide') 

Para utilizar este método, primero debes seleccionar el elemento modal (por ejemplo, utilizando su ID con jQuery como en el ejemplo) y luego llamar al método .modal('hide').

Evitar que se cierre al hacer clic fuera del modal (backdrop estático)

En algunas ocasiones, puede ser deseable evitar que el modal se cierre al hacer clic fuera de él. Por ejemplo, en formularios complejos donde no quieres que el usuario cierre accidentalmente el modal y pierda el progreso. Bootstrap ofrece la opción de configurar un "backdrop estático" para lograr este comportamiento.

Configuración del backdrop estático

Para configurar un backdrop estático, puedes utilizar el atributo data-bs-backdrop="static" en el elemento modal. En versiones anteriores de Bootstrap (anteriores a la 5), la configuración se realizaba mediante Javascript al inicializar el modal:

Bootstrap 5 y superior:

<div class="modal fade" id="miModal" data-bs-backdrop="static" tabindex="-1" aria-labelledby="miModalLabel" aria-hidden="true"> <!-- ... contenido del modal ... --> </div> 

Bootstrap 4 y versiones anteriores (ejemplo con Javascript):

$('#miModal').modal({ backdrop: 'static' }) 

Cuando se configura el backdrop como estático, el modal ya no se cerrará al hacer clic fuera de él. El usuario deberá utilizar el botón de cierre u otro método explícito para cerrar el modal. En Bootstrap 5, si el backdrop es estático, además de no cerrarse al hacer clic, se puede configurar (opcionalmente) para que se anime cuando se intenta cerrar haciendo clic fuera, indicando visualmente que la acción no está permitida.

How to get modal close event in JavaScript?
, , ready(function(){ , $("#myModal"). on("hide.bs.modal", function(){ , console. log("hey! How dare to close me !" , // your function after closing modal goes here. , , , })

Consideraciones adicionales al cerrar modales

Además de los métodos de cierre, hay otras consideraciones importantes al trabajar con modales de Bootstrap:

Accesibilidad

Asegúrate de que tus modales sean accesibles para todos los usuarios, incluyendo aquellos que utilizan tecnologías de asistencia. Utiliza los atributos role="dialog" y aria-labelledby="..." en el elemento modal, referenciando el título del modal. Si es necesario, también puedes utilizar aria-describedby="..." para proporcionar una descripción más detallada del contenido del modal.

Eventos de modal

Bootstrap dispara varios eventos relacionados con los modales, que puedes utilizar para ejecutar código Javascript en diferentes momentos del ciclo de vida del modal. Algunos eventos importantes incluyen:

  • show.bs.modal: Se dispara inmediatamente cuando se llama al método show.
  • shown.bs.modal: Se dispara cuando el modal se ha mostrado completamente al usuario (después de las transiciones CSS).
  • hide.bs.modal: Se dispara inmediatamente cuando se llama al método hide.
  • hidden.bs.modal: Se dispara cuando el modal se ha ocultado completamente al usuario (después de las transiciones CSS).

Estos eventos te permiten realizar acciones como validar formularios al cerrar, enfocar elementos dentro del modal al abrirse, o limpiar datos al ocultarse.

Tamaños opcionales

Bootstrap ofrece tamaños opcionales para modales (.modal-lg para modales grandes y .modal-sm para modales pequeños). Estos tamaños pueden ser útiles para adaptar el modal a la cantidad de contenido que contiene y mejorar la presentación en diferentes dispositivos.

Preguntas Frecuentes (FAQs)

¿Cómo cerrar un modal de Bootstrap programáticamente?

Utiliza el método Javascript .modal('hide') en el elemento modal seleccionado (por ejemplo, $('#miModal').modal('hide')).

¿Cómo evitar que el modal se cierre al hacer clic fuera?

Configura el backdrop como estático utilizando el atributo data-bs-backdrop="static" en el elemento modal (Bootstrap 5+) o la opción backdrop: 'static' al inicializar el modal con Javascript (Bootstrap 4 y anteriores).

¿Qué atributos son importantes para cerrar un modal correctamente?

El atributo principal es data-dismiss="modal" para botones de cierre. Para controlar el comportamiento del backdrop, utiliza data-bs-backdrop. Además, considera los atributos de accesibilidad como role y aria-labelledby.

Conclusión

Cerrar modales de Bootstrap es una acción fundamental en la interacción del usuario con tu sitio web. Comprender los diferentes métodos disponibles, desde el botón de cierre y el clic en el backdrop hasta la API de Javascript, te permite ofrecer una experiencia de usuario fluida e intuitiva. Configurar correctamente el comportamiento de cierre, incluyendo la opción de backdrop estático, y considerar aspectos de accesibilidad, te ayudará a crear modales efectivos y adaptados a las necesidades de tu proyecto.

Subir