Wie kann ich das Zoomen / Ziehen der Kartenansicht in Leaflet.js vorübergehend deaktivieren? Ich habe es auf so viele Arten versucht, aber ohne Glück. Es ist wichtig, es temporär zu machen und ich brauche auch die Option, um es wieder zu aktivieren.
Wie kann ich das Zoomen / Ziehen der Kartenansicht in Leaflet.js vorübergehend deaktivieren? Ich habe es auf so viele Arten versucht, aber ohne Glück. Es ist wichtig, es temporär zu machen und ich brauche auch die Option, um es wieder zu aktivieren.
Antworten:
du wirst es tun wollen (vorausgesetzt deine Karte ist ein Anruf 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';
schalten sie es wieder mit ein
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';
Wenn Sie nicht jeden Handler manuell deaktivieren möchten, können Sie alle Handler in einer Schleife ausführen und sie deaktivieren / aktivieren.
Deaktivieren
map._handlers.forEach(function(handler) {
handler.disable();
});
Aktivieren
map._handlers.forEach(function(handler) {
handler.enable();
});
Ich denke, Sie können Ihre Map mit einem Helfer-Container umschließen und Sie können sie mit einfachen CSS-Klassen wie deaktivieren is-locked
.
Hier ist, wovon ich rede:
.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;
}
Ich hoffe, es hilft.