fix: 点击背景图/空白区域取消层叠图选中状态
This commit is contained in:
38
js/script.js
38
js/script.js
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user