From b380e65161ecf939168f690c317084e9b8d57f97 Mon Sep 17 00:00:00 2001 From: Zhukj <3262118957> Date: Sat, 25 Apr 2026 09:35:32 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=9B=BE=E5=B1=82=E9=9D=A2=E6=9D=BF):=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=82=B9=E5=87=BB=E7=A9=BA=E7=99=BD=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E5=85=B3=E9=97=AD=E9=9D=A2=E6=9D=BF=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加点击面板外部区域关闭图层面板的功能,同时支持桌面端和移动端。桌面端使用 click 事件,移动端使用 touchend 事件,并确保点击面板内部或图层按钮时不触发关闭。 --- js/script.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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) {