Czy ktoś wie, jak wyłączyć panoramowanie, gdy klikniesz i przeciągniesz nad pole div osadzone w samej mapie?
Na przykład tutaj , gdy klikniesz i przeciągniesz nad legendą, mapa przeciągnie się wraz z tobą. Chcę wyłączyć tę funkcję. Wiem, czy ta technika, ale chcę wiedzieć, czy to jedyny sposób:
map.dragging.disable();
Odpowiedzi:
Korzystając z przykładu ze strony internetowej Ulotki, zanotuj, gdzie
L.Control
instancja obiektu jest tworzona jakoinfo
; jest to<div>
pole w prawym górnym rogu związane z interakcją najechania na mapę. Oto, gdzie jest to zdefiniowaneindex.html
na przykładzie Ulotki:Aby wyłączyć przeciąganie, gdy kursor użytkownika znajduje się w tym
<div>
polu , dodaj detektor zdarzeń doHTMLElement
(<div>
elementu) zawierającegoL.Control
obiekt:Przypomnij sobie, że wcześniej
map
zdefiniowano toL.Map
wystąpienie.źródło
leaflet-control
Element jest zawarty wleaflet-container
elemencie, a drugi odbiera zdarzenia wskaźnik, który zoom wyzwalania i przesuwanie.<div>
interesuje się dzieckiem,leaflet-control
którego jest w sobieleaflet-container
. Zdarzenia są odbierane przez parent (leaflet-container
) przed child (leaflet-control
).Alternatywnym rozwiązaniem jest zatrzymanie propagacji zdarzeń za pomocą JavaScript (tak jak w przypadku kontroli Ulotki, np. Przycisków powiększenia):
źródło