Кто-нибудь знает, как подавить панорамирование, когда вы нажимаете и перетаскиваете поверх блока div, встроенного в саму карту?
Например, здесь , когда вы нажимаете и перетаскиваете поверх легенды, карта перетаскивается вместе с вами. Я хочу подавить эту функцию. Я знаю, если это техника, но я хочу знать, если это единственный способ:
map.dragging.disable();
Ответы:
Используя пример с веб-сайта Leaflet, обратите внимание, где
L.Control
создается экземпляр объектаinfo
; это<div>
поле в правом верхнем углу, связанное с парящим взаимодействием карты. Вот где это определено вindex.html
примере Leaflet:Чтобы отключить перетаскивание, когда курсор пользователя находится внутри этого
<div>
поля , добавьте прослушиватель событий вHTMLElement
(<div>
элемент), который содержитL.Control
объект:Напомним, что
map
был определен какL.Map
экземпляр ранее.источник
leaflet-control
Элемент содержится вleaflet-container
элементе , а второй получает указатель события , которые вызывают увеличение и панорамирование.<div>
интерес - это дитя,leaflet-control
которое само внутриleaflet-container
. События принимаются parent (leaflet-container
) перед child (leaflet-control
).Альтернативное решение - остановить распространение событий с помощью JavaScript (как это делается для элементов управления Leaflet, например, кнопок масштабирования):
источник