diff --git a/packages/stage/src/StageCore.ts b/packages/stage/src/StageCore.ts index 810fe880..f7b5f30c 100644 --- a/packages/stage/src/StageCore.ts +++ b/packages/stage/src/StageCore.ts @@ -61,7 +61,7 @@ export default class StageCore extends EventEmitter { this.renderer = new StageRender({ core: this }); this.mask = new StageMask({ core: this }); this.dr = new StageDragResize({ core: this, container: this.mask.content }); - this.highlightLayer = new StageHighlight({ core: this, container: this.mask.content }); + this.highlightLayer = new StageHighlight({ core: this, container: this.mask.wrapper }); this.renderer.on('runtime-ready', (runtime: Runtime) => this.emit('runtime-ready', runtime)); this.renderer.on('page-el-update', (el: HTMLElement) => this.mask?.observe(el)); diff --git a/packages/stage/src/StageHighlight.ts b/packages/stage/src/StageHighlight.ts index 4d09c2b0..f6e95489 100644 --- a/packages/stage/src/StageHighlight.ts +++ b/packages/stage/src/StageHighlight.ts @@ -46,6 +46,15 @@ export default class StageHighlight extends EventEmitter { this.moveable?.destroy(); this.moveable = new Moveable(this.container, { target: this.target, + scrollable: true, + origin: true, + zoom: 1, + bounds: { + top: 0, + left: 0, + right: this.container.clientWidth, + bottom: this.container.clientHeight, + }, }); } diff --git a/packages/stage/src/StageMask.ts b/packages/stage/src/StageMask.ts index 03a821ce..17f47311 100644 --- a/packages/stage/src/StageMask.ts +++ b/packages/stage/src/StageMask.ts @@ -240,6 +240,7 @@ export default class StageMask extends Rule { }; private mouseWheelHandler = (event: WheelEvent) => { + this.emit('clearHighlight'); if (!this.page) throw new Error('page 未初始化'); const { deltaY, deltaX } = event;