feat(editor): 选中组件后自动滚动到组件位置

This commit is contained in:
roymondchen 2022-05-07 19:55:26 +08:00 committed by jia000
parent ca97e2410b
commit d23a318003
2 changed files with 15 additions and 0 deletions

View File

@ -154,6 +154,9 @@ export default class StageCore extends EventEmitter {
}
this.mask.setLayout(el);
el.scrollIntoView();
this.dr.select(el, event);
this.selectedDom = el;

View File

@ -130,9 +130,14 @@ export default class StageMask extends Rule {
if (!page) return;
this.page = page;
this.pageScrollParent?.removeEventListener('scroll', this.pageScrollParentScrollHandler);
this.pageScrollParent = getScrollParent(page) || this.core.renderer.contentWindow?.document.documentElement || null;
this.pageResizeObserver?.disconnect();
this.pageScrollParent?.addEventListener('scroll', this.pageScrollParentScrollHandler);
if (typeof ResizeObserver !== 'undefined') {
this.pageResizeObserver = new ResizeObserver((entries) => {
const [entry] = entries;
@ -313,4 +318,11 @@ export default class StageMask extends Rule {
private mouseLeaveHandler = () => {
setTimeout(() => this.emit('clearHighlight'), throttleTime);
};
private pageScrollParentScrollHandler = () => {
if (!this.pageScrollParent) return;
this.scrollLeft = this.pageScrollParent.scrollLeft;
this.scrollTop = this.pageScrollParent.scrollTop;
this.scroll();
};
}