From 9cb821c49183568ed54141746957733bc7f026f7 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Wed, 13 Apr 2022 15:26:10 +0800 Subject: [PATCH] =?UTF-8?q?fix(stage):=20=E4=BF=AE=E5=A4=8D=E9=BC=A0?= =?UTF-8?q?=E6=A0=87=E7=A7=BB=E5=87=BA=E7=94=BB=E5=B8=83=E5=90=8E=EF=BC=8C?= =?UTF-8?q?highlight=E6=B2=A1=E6=9C=89=E6=B8=85=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/stage/src/StageHighlight.ts | 1 + packages/stage/src/StageMask.ts | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/packages/stage/src/StageHighlight.ts b/packages/stage/src/StageHighlight.ts index 167743ef..4ec5a10a 100644 --- a/packages/stage/src/StageHighlight.ts +++ b/packages/stage/src/StageHighlight.ts @@ -56,6 +56,7 @@ export default class StageHighlight extends EventEmitter { */ public clearHighlight(): void { if (!this.moveable) return; + this.target = undefined; this.moveable.target = null; this.moveable.updateTarget(); } diff --git a/packages/stage/src/StageMask.ts b/packages/stage/src/StageMask.ts index adadc2f5..a402b24a 100644 --- a/packages/stage/src/StageMask.ts +++ b/packages/stage/src/StageMask.ts @@ -106,6 +106,7 @@ export default class StageMask extends Rule { this.wrapper.appendChild(this.content); this.content.addEventListener('wheel', this.mouseWheelHandler); this.content.addEventListener('mousemove', this.highlightHandler); + this.content.addEventListener('mouseleave', this.mouseLeaveHandler); } public setMode(mode: Mode) { @@ -141,6 +142,7 @@ export default class StageMask extends Rule { this.fixScrollValue(); this.scroll(); + this.core.dr.updateMoveable(); }); this.pageResizeObserver.observe(page); @@ -180,6 +182,8 @@ export default class StageMask extends Rule { this.pageScrollParent = null; this.pageResizeObserver?.disconnect(); this.wrapperResizeObserver?.disconnect(); + + this.content.removeEventListener('mouseleave', this.mouseLeaveHandler); super.destroy(); } @@ -301,4 +305,8 @@ export default class StageMask extends Rule { this.emit('scroll', event); }; + + private mouseLeaveHandler = () => { + setTimeout(() => this.emit('clearHighlight'), throttleTime); + }; }