From 203ee9b6234d8f7ddcdae6eee9c6584563b8da2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <126167116+caodachen@users.noreply.github.com> Date: Thu, 22 Jan 2026 11:37:01 +0800 Subject: [PATCH] fix(@vben-core/shared): element outside viewport, the element visible rect each prop expect 0 (#7120) * fix(@vben-core/shared): element outside viewport * fix(@vben-core/shared): element outside viewport --- packages/@core/base/shared/src/utils/dom.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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),