Fix popup hovering (bubbling) 2

This commit is contained in:
2020-08-20 22:42:09 +02:00
parent 3c5a83b366
commit 2ed8870fbe
4 changed files with 30 additions and 22 deletions

View File

@@ -543,24 +543,11 @@ function initSpotMessages(aoMessages, aoTracks, bNoFeed) {
oLayer
.bindPopup($Tooltip[0])
.on('mouseover click', function(e) {
var oLatLng = L.GeometryUtil.closest(self.tmp('map'), e.sourceTarget, e.latlng);
e.target.getPopup().setLatLng(oLatLng).openOn(self.tmp('map'));
var asTrailMarkers = self.tmp(['trail-markers', e.target.feature.properties.name]);
var oPointStart = self.tmp('map').latLngToLayerPoint(asTrailMarkers.start.getLatLng());
var oPointEnd = self.tmp('map').latLngToLayerPoint(asTrailMarkers.end.getLatLng());
if(oPointStart.distanceTo(oPointEnd) > 200) {
asTrailMarkers.start.addTo(self.tmp('map'));
asTrailMarkers.end.addTo(self.tmp('map'));
}
.on('click', function(e) {
toggleSoftPopup(e, 'open');
})
.on('mouseout', function(e) {
e.target.closePopup();
var asTrailMarkers = self.tmp(['trail-markers', e.target.feature.properties.name]);
asTrailMarkers.start.remove();
asTrailMarkers.end.remove();
.on('popupclose', function(e) {
toggleSoftPopup(e, 'close');
});
}
}
@@ -644,6 +631,30 @@ function initSpotMessages(aoMessages, aoTracks, bNoFeed) {
*/
}
function toggleSoftPopup(e, sMode) {
switch(sMode) {
case 'open':
var oLatLng = L.GeometryUtil.closest(self.tmp('map'), e.sourceTarget, e.latlng);
var oPopup = e.target.getPopup();
if(!oPopup.isOpen()) oPopup.setLatLng(oLatLng).openOn(self.tmp('map'));
var asTrailMarkers = self.tmp(['trail-markers', e.target.feature.properties.name]);
var oPointStart = self.tmp('map').latLngToLayerPoint(asTrailMarkers.start.getLatLng());
var oPointEnd = self.tmp('map').latLngToLayerPoint(asTrailMarkers.end.getLatLng());
if(oPointStart.distanceTo(oPointEnd) > 200) {
asTrailMarkers.start.addTo(self.tmp('map'));
asTrailMarkers.end.addTo(self.tmp('map'));
}
break;
case 'close':
//e.target.closePopup();
var asTrailMarkers = self.tmp(['trail-markers', e.target.feature.properties.name]);
asTrailMarkers.start.remove();
asTrailMarkers.end.remove();
break;
}
}
/*
function next(iCurrTrack, iCurrIndex, iCurrOffset, iCurrZoom) {
var aoTracks = oSpot.tmp('tracks');

View File

@@ -18,9 +18,6 @@ $stroke-width-axis : 2;
}
.leaflet-popup {
padding-bottom: 60px;
margin-bottom: -40px;
.leaflet-popup-content-wrapper {
border-radius: 5px;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long