diff --git a/js/script.js b/js/script.js index 68d1728..cbc11bc 100644 --- a/js/script.js +++ b/js/script.js @@ -2421,6 +2421,25 @@ layersClose.addEventListener('click', closeLayersPanel); layersClose.addEventListener('touchend', (e) => { e.preventDefault(); closeLayersPanel(); }); + // 点击空白区域关闭图层面板 + const handleClickOutside = (e) => { + // 如果点击的是图层面板内部,不关闭 + if (layersPanel.contains(e.target) || layersBtn.contains(e.target)) { + return; + } + // 关闭图层面板 + layersPanel.classList.remove('active'); + }; + + // 桌面端使用 click 事件 + document.addEventListener('click', handleClickOutside); + // 移动端使用 touchend 事件 + document.addEventListener('touchend', (e) => { + if (layersPanel.classList.contains('active')) { + handleClickOutside(e); + } + }); + // 图层操作按钮 - 只保留显示/隐藏(同时支持桌面和移动端) const layerToggleVisibleBtn = document.getElementById('layerToggleVisible'); if (layerToggleVisibleBtn) {