EDIT
Eine Abhilfe wäre, das „Pop-up“ selbst zu implementieren, so dass es auf die Karte Container Mutter statt innerhalb der Behälter Karte gehört.
Sie müßten die Marker Bewegungsverfolgung, aber mit Prospekt implementieren ist dies recht einfach:
- die
map.latLngToContainerPoint()
mit
"move"
Ereignis
- Abrufen der Markers aktuelle Position Karte verwenden
- Ihren Popup bewegen Sie mit
L.DomUtil.setTransform()
Methode zum Anwenden einer translate3d
(hardwarebeschleunigte Übersetzung).
map.on("move", function() {
movePopup();
});
function movePopup() {
var mapContainerRelativePos = map.latLngToContainerPoint(mymarker.getLatLng()),
x = mapContainerPos.left + mapContainerRelativePos.x,
y = mapContainerPos.top + mapContainerRelativePos.y;
L.DomUtil.setTransform(mypopup, {x: x, y: y}, 1);
}
Demo: https://jsfiddle.net/3v7hd2vx/54/
Dann sind Sie mit Öffnung nach links und das Popup zu schließen.
Ursprüngliche Antwort
Die L.Popup
innerhalb der Kartenelemente hinzugefügt. Daher kann es standardmäßig nicht außerhalb des Kartencontainers erweitert werden.
Sie können jedoch versuchen, es "extrahieren" (popup.getElement()
in Leaflet 1.0) durch Abrufen der zugeordneten HTML-Elemente und Anhängen an einen externen übergeordneten DOM-Knoten, so dass Sie nicht mehr an den Kartencontainer gebunden sind.
Dies ist genau das, was ich versucht habe ... Aber war keine gute Antwort, da ein "geklontes" Element möglich ist, aber es ist nicht gut Positionierung + nicht an die Karte gebunden. Ich denke, die beste Antwort ist: Es ist leider nicht möglich. :(+1 für @Gyybs –
Es scheint aber eine Lösung, funktioniert immer noch nicht. – BryGom
Ein Workaround hinzugefügt. – ghybs