From 50937c286776794842b247b06f0751a3302a1cbf Mon Sep 17 00:00:00 2001 From: roymondchen Date: Tue, 24 May 2022 21:06:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(editor):=20=E9=80=89=E4=B8=AD=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=EF=BC=8C=E7=BB=84=E4=BB=B6=E8=87=AA=E5=8A=A8=E6=BB=9A?= =?UTF-8?q?=E5=8A=A8=E5=88=B0=E8=A7=86=E7=AA=97=E5=86=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/stage/src/StageCore.ts | 2 ++ packages/stage/src/StageMask.ts | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/packages/stage/src/StageCore.ts b/packages/stage/src/StageCore.ts index b0f9e91c..4f97780e 100644 --- a/packages/stage/src/StageCore.ts +++ b/packages/stage/src/StageCore.ts @@ -155,6 +155,8 @@ export default class StageCore extends EventEmitter { this.mask.setLayout(el); this.dr.select(el, event); + this.mask.scrollIntoView(el); + this.selectedDom = el; if (this.renderer.contentWindow) { diff --git a/packages/stage/src/StageMask.ts b/packages/stage/src/StageMask.ts index 86c2b571..333920d7 100644 --- a/packages/stage/src/StageMask.ts +++ b/packages/stage/src/StageMask.ts @@ -173,6 +173,16 @@ export default class StageMask extends Rule { this.setMode(isFixedParent(el) ? Mode.FIXED : Mode.ABSOLUTE); } + public scrollIntoView(el: HTMLElement): void { + if (this.mode === Mode.FIXED) return; + + el.scrollIntoView(); + if (!this.pageScrollParent) return; + this.scrollLeft = this.pageScrollParent.scrollLeft; + this.scrollTop = this.pageScrollParent.scrollTop; + this.scroll(); + } + /** * 销毁实例 */