Weiß jemand, wie man das Schwenken unterdrückt, wenn man auf ein in der Karte selbst eingebettetes Div-Feld klickt und es darüber zieht?
Wenn Sie hier beispielsweise auf die Legende klicken und sie darüber ziehen, wird die Karte mitgezogen. Ich möchte diese Funktion unterdrücken. Ich weiß, ob diese Technik, aber ich möchte wissen, ob dies der einzige Weg ist:
map.dragging.disable();
Antworten:
Notieren Sie anhand des Beispiels auf der Website der Broschüre, wo das
L.Control
Objekt instanziiert istinfo
. Dies ist das<div>
Feld oben rechts, das mit der Hover-Interaktion der Karte verknüpft ist. Hier ist es imindex.html
Beispiel der Broschüre definiert :Um das Ziehen zu deaktivieren, wenn sich der Cursor eines Benutzers in diesem
<div>
Feld befindet , fügen Sie demHTMLElement
(einem<div>
Element), das dasL.Control
Objekt enthält , einen Ereignis-Listener hinzu :Erinnern Sie sich, dass
map
als dieL.Map
Instanz zuvor definiert wurde.quelle
leaflet-control
Element ist imleaflet-container
Element enthalten, und dieses empfängt die Zeigerereignisse, die Zoomen und Schwenken auslösen.<div>
Interessierte ist ein Kind, inleaflet-control
dem sich selbst befindetleaflet-container
. Die Ereignisse werden vom Elternteil (leaflet-container
) vor dem Kind (leaflet-control
) empfangen .Eine alternative Lösung besteht darin, die Weitergabe von Ereignissen mit JavaScript zu stoppen (wie dies bei Leaflet-Steuerelementen, z. B. Zoom-Schaltflächen, der Fall ist):
quelle