fix: 点击背景图/空白区域取消层叠图选中状态

This commit is contained in:
Zhukj
2026-04-17 17:09:34 +08:00
parent 194a064194
commit 5353e4aad8

View File

@@ -98,26 +98,43 @@
// 点击容器空白处取消选中 // 点击容器空白处取消选中
function handleContainerClick(e) { function handleContainerClick(e) {
// 点击容器、背景图层或背景图片,取消输入框选中 const isBackground = e.target === imageContainer ||
if (e.target === imageContainer || e.target === bgLayer ||
e.target === bgLayer || e.target === bgImage ||
e.target === bgImage || e.target.closest('.preview-bg-layer') ||
e.target.closest('.preview-bg-layer') || e.target === document.getElementById('emptyTip');
e.target === document.getElementById('emptyTip')) { const isOverlayImage = e.target.closest('.overlay-image');
const isTextInput = e.target.closest('.text-input');
// 点击背景/空白区域
if (isBackground && !isOverlayImage) {
// 如果正在编辑,先结束编辑 // 如果正在编辑,先结束编辑
if (editingInput) { if (editingInput) {
endEdit(editingInput); endEdit(editingInput);
} }
// 移除选中状态 // 移除输入框选中状态
if (selectedInput) { if (selectedInput) {
selectedInput.classList.remove('selected'); selectedInput.classList.remove('selected');
selectedInput = null; selectedInput = null;
} }
// 取消层叠图选中状态
if (selectedOverlay) {
selectedOverlay.classList.remove('selected');
selectedOverlay = null;
}
// 隐藏辅助线 // 隐藏辅助线
hideGuides(); hideGuides();
// 隐藏文本编辑器工具栏 // 隐藏文本编辑器工具栏
textEditorToolbar.classList.remove('active'); textEditorToolbar.classList.remove('active');
} }
// 点击空白区域(不是层叠图和输入框)
if (!isOverlayImage && !isTextInput && !isBackground) {
if (selectedOverlay) {
selectedOverlay.classList.remove('selected');
selectedOverlay = null;
}
}
} }
imageContainer.addEventListener('click', handleContainerClick); imageContainer.addEventListener('click', handleContainerClick);
@@ -439,19 +456,6 @@
overlayEl.classList.add('selected'); overlayEl.classList.add('selected');
} }
// 点击背景/空白处取消选中层叠图
imageContainer.addEventListener('click', (e) => {
const isOverlayImage = e.target.closest('.overlay-image');
const isTextInput = e.target.closest('.text-input');
if (!isOverlayImage && !isTextInput) {
if (selectedOverlay) {
selectedOverlay.classList.remove('selected');
selectedOverlay = null;
}
}
});
// 计算图片滑动边界 // 计算图片滑动边界
function calculateImageBounds() { function calculateImageBounds() {
if (!currentImage) return; if (!currentImage) return;