mirror of https://github.com/ElemeFE/element
Message: restore focus only when target in viewport
parent
aa09c460ff
commit
194874b3b2
|
@ -87,7 +87,18 @@
|
|||
if (typeof this.onClose === 'function') {
|
||||
this.onClose(this);
|
||||
}
|
||||
this.originFocus && this.originFocus.focus(); // 键盘焦点回归
|
||||
if (!this.originFocus || !this.originFocus.getBoundingClientRect) return;
|
||||
|
||||
// restore keyboard focus
|
||||
const { top, left, bottom, right } = this.originFocus.getBoundingClientRect();
|
||||
const viewportHeight = window.innerHeight || document.documentElement.clientHeight;
|
||||
const viewportWidth = window.innerWidth || document.documentElement.clientWidth;
|
||||
if (top >= 0 &&
|
||||
left >= 0 &&
|
||||
bottom <= viewportHeight &&
|
||||
right <= viewportWidth) {
|
||||
this.originFocus.focus();
|
||||
}
|
||||
},
|
||||
|
||||
clearTimer() {
|
||||
|
|
Loading…
Reference in New Issue