Saltar al contenido

El mapa del folleto no se muestra correctamente en el modal de bootstrap 3.0

Solución:

Creo que lo que está sucediendo es que, cuando se crea el mapa, el ancho / alto del contenedor para su elemento ‘map-canvas’ aún no se ha ajustado al ancho / alto del diálogo modal. Esto hace que el tamaño del mapa sea incorrecto (más pequeño) de lo que debería ser.

Puedes arreglar esto llamando map.invalidateSize(). Esto funcionará para reajustar los límites de ancho / alto del contenedor de L.Map.

Puede llamar a esto automáticamente conectándose al evento donde se muestra el modal de Bootstrap.

$('#myModal').on('show.bs.modal', function(){
  setTimeout(function() {
    map.invalidateSize();
  }, 10);
 });

Inserte este código en su JavaScript. Cuando se muestra el modal, el mapa invalidará su tamaño. El tiempo de espera se debe a que puede haber algún tiempo de animación / transición para que el modal se muestre y se agregue al DOM.

Probablemente debería evitar usar setTimeout con un retraso elegido al azar. Una mejor manera de usar el evento ‘shown.bs.modal’ en lugar de ‘show.bs.modal’:

modal.on('shown.bs.modal', function(){
    setTimeout(function() {
        map.invalidateSize();
   }, 1);
})

O use aplazamiento de subrayado:

modal.on('shown.bs.modal', function(){
    _.defer(map.invalidateSize.bind(map));
})

Yo uso esta solución:

.modal {
  visibility: hidden;
  display: block;
}

.modal[aria-hidden='false'] {
  visibility: visible;
  display: block;
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *