在 tap/click、hide/show L.control 上(传单)
On tap/click, hide/show L.control (Leaflet)
我希望用户能够点击屏幕切换L.control,以获得更清晰的地图。
这是我用来切换的代码 L.control:
var dragged = false
window.addEventListener('mousedown', function () {
dragged = false
})
window.addEventListener('mousemove', function () {
dragged = true
})
$("#mapid").on("click", function () {
if (dragged == false && $(window).width() < 960) {
return $(".leaflet-left").slideToggle(300) && $(".leaflet-right").slideToggle(300);
}
})
这可行,但问题是 L.control 也会在点击地图上的标记时切换。
单击标记时如何忽略它?
在地图上使用 Leaflet 内部事件click
:
map.on("click", function () {
if ($(window).width() < 960) {
$(".leaflet-left").slideToggle(300) && $(".leaflet-right").slideToggle(300);
}
})
检查弹出窗口是否打开:
function isPopupOpen(){
var popupOpen = false;
map.eachLayer((layer)=>{
if(layer instanceof L.Popup){
popupOpen = true;
}
})
return popupOpen;
}
我希望用户能够点击屏幕切换L.control,以获得更清晰的地图。
这是我用来切换的代码 L.control:
var dragged = false
window.addEventListener('mousedown', function () {
dragged = false
})
window.addEventListener('mousemove', function () {
dragged = true
})
$("#mapid").on("click", function () {
if (dragged == false && $(window).width() < 960) {
return $(".leaflet-left").slideToggle(300) && $(".leaflet-right").slideToggle(300);
}
})
这可行,但问题是 L.control 也会在点击地图上的标记时切换。
单击标记时如何忽略它?
在地图上使用 Leaflet 内部事件click
:
map.on("click", function () {
if ($(window).width() < 960) {
$(".leaflet-left").slideToggle(300) && $(".leaflet-right").slideToggle(300);
}
})
检查弹出窗口是否打开:
function isPopupOpen(){
var popupOpen = false;
map.eachLayer((layer)=>{
if(layer instanceof L.Popup){
popupOpen = true;
}
})
return popupOpen;
}