Deshabilitar la interacción temporal del folleto

16

¿Cómo puedo deshabilitar temporalmente el zoom / borrado de Mapview en Leaflet.js? Lo intenté de muchas maneras pero sin suerte. Es importante que sea temporal y también necesito la opción para habilitar nuevamente.

    
pregunta Bernhard 14.03.2013 - 14:15

3 respuestas

28

vas a querer hacer (asumiendo que tu mapa es call map )

map.dragging.disable();
map.touchZoom.disable();
map.doubleClickZoom.disable();
map.scrollWheelZoom.disable();
map.boxZoom.disable();
map.keyboard.disable();
if (map.tap) map.tap.disable();
document.getElementById('map').style.cursor='default';

Vuelve a encenderlo con

map.dragging.enable();
map.touchZoom.enable();
map.doubleClickZoom.enable();
map.scrollWheelZoom.enable();
map.boxZoom.enable();
map.keyboard.enable();
if (map.tap) map.tap.enable();
document.getElementById('map').style.cursor='grab';
    
respondido por el Calvin 20.03.2013 - 00:12
4

Si no desea deshabilitar cada controlador manualmente, puede recorrerlos todos y deshabilitarlos / habilitarlos.

Deshabilitar

map._handlers.forEach(function(handler) {
    handler.disable();

});

Habilitar

map._handlers.forEach(function(handler) {
    handler.enable();

});
    
respondido por el ustroetz 08.07.2016 - 21:16
0

Creo que puedes envolver tu mapa con un contenedor de ayuda y puedes desactivarlo con una clase de CSS simple como is-locked .

Esto es de lo que estoy hablando:

.map-container {
  position: relative;
}

.map-container .map {
  position: relative;
  z-index: 1;
}

.map-container.is-locked:after {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;

  content: "";
  display: block;
}

Espero que ayude.

    
respondido por el hayatbiralem 06.07.2018 - 12:17

Lea otras preguntas en las etiquetas