diff --git a/packages/stage/src/StageDragResize.ts b/packages/stage/src/StageDragResize.ts index d135ded5..3766ebe0 100644 --- a/packages/stage/src/StageDragResize.ts +++ b/packages/stage/src/StageDragResize.ts @@ -96,6 +96,11 @@ export default class StageDragResize extends EventEmitter { const oldTarget = this.target; this.target = el; + if (!this.dragEl) { + this.dragEl = globalThis.document.createElement('div'); + this.container.append(this.dragEl); + } + // 从不能拖动到能拖动的节点之间切换,要重新创建moveable,不然dragStart不生效 if (!this.moveable || this.target !== oldTarget) { this.init(el); @@ -157,6 +162,7 @@ export default class StageDragResize extends EventEmitter { public clearSelectStatus(): void { if (!this.moveable) return; this.destroyDragEl(); + this.dragEl = undefined; this.moveable.target = null; this.moveable.updateTarget(); } @@ -184,9 +190,11 @@ export default class StageDragResize extends EventEmitter { this.mode = getMode(el); this.destroyGhostEl(); - this.destroyDragEl(); - this.dragEl = globalThis.document.createElement('div'); - this.container.append(this.dragEl); + + if (!this.dragEl) { + return; + } + this.dragEl.style.cssText = getTargetElStyle(el); this.dragEl.id = `${DRAG_EL_ID_PREFIX}${el.id}`; diff --git a/packages/stage/src/TargetCalibrate.ts b/packages/stage/src/TargetCalibrate.ts index 21f5624c..5731654f 100644 --- a/packages/stage/src/TargetCalibrate.ts +++ b/packages/stage/src/TargetCalibrate.ts @@ -57,7 +57,7 @@ export default class TargetCalibrate extends EventEmitter { top: ${top}px; width: ${el.clientWidth}px; height: ${el.clientHeight}px; - z-index: ${ZIndex.DRAG_EL}; + z-index: ${ZIndex.HIGHLIGHT_EL}; `; this.operationEl.id = `${prefix}${el.id}`; diff --git a/packages/stage/src/const.ts b/packages/stage/src/const.ts index fc9c08c8..68508921 100644 --- a/packages/stage/src/const.ts +++ b/packages/stage/src/const.ts @@ -48,6 +48,7 @@ export enum ZIndex { SELECTED_EL = '666', GHOST_EL = '700', DRAG_EL = '9', + HIGHLIGHT_EL = '8', } /** 鼠标按键 */