diff --git a/packages/@core/base/shared/src/utils/dom.ts b/packages/@core/base/shared/src/utils/dom.ts index 69617176..35a7e5ff 100644 --- a/packages/@core/base/shared/src/utils/dom.ts +++ b/packages/@core/base/shared/src/utils/dom.ts @@ -41,6 +41,18 @@ export function getElementVisibleRect( const left = Math.max(rect.left, 0); const right = Math.min(rect.right, viewWidth); + // 如果元素完全不可见,则返回一个空的矩形 + if (top >= viewHeight || bottom <= 0 || left >= viewWidth || right <= 0) { + return { + bottom: 0, + height: 0, + left: 0, + right: 0, + top: 0, + width: 0, + }; + } + return { bottom, height: Math.max(0, bottom - top),