¿Alguien sabe cómo suprimir la panorámica cuando hace clic y arrastra sobre la parte superior de un cuadro div incrustado dentro del mapa?
Por ejemplo , aquí , cuando hace clic y arrastra sobre la parte superior de la leyenda, el mapa se arrastra con usted. Quiero suprimir esa función. Soy consciente de esta técnica, pero quiero saber si esta es la única manera:
map.dragging.disable();
Respuestas:
Usando el ejemplo del sitio web de Leaflet, observe dónde
L.Control
se instancia el objeto comoinfo
; Este es el<div>
cuadro en la esquina superior derecha asociado con la interacción de desplazamiento del mapa. Aquí es donde se define aindex.html
partir del ejemplo del folleto:Para deshabilitar el arrastre cuando el cursor de un usuario está dentro de este
<div>
cuadro , agregue un detector de eventos alHTMLElement
(un<div>
elemento) que contiene elL.Control
objeto:Recuerde que
map
se definió como laL.Map
instancia anterior.fuente
leaflet-control
elemento está contenido por elleaflet-container
elemento y este último está recibiendo los eventos de puntero que activan el zoom y la panorámica.<div>
de interés es un hijo delleaflet-control
que está dentroleaflet-container
. Los eventos son recibidos por el padre (leaflet-container
) antes que el niño (leaflet-control
).Una solución alternativa a esto es detener la propagación de eventos con JavaScript (como se hace para los controles de folleto, por ejemplo, botones de zoom):
fuente