From 343f4338201d4309f3fdc697acbbb56925596f7c Mon Sep 17 00:00:00 2001 From: aojunhao123 <1844749591@qq.com> Date: Sat, 10 Jan 2026 20:44:15 +0800 Subject: [PATCH 1/2] fix: popup container scroll due to precision --- src/hooks/useAlign.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hooks/useAlign.ts b/src/hooks/useAlign.ts index c8a50991..610f2280 100644 --- a/src/hooks/useAlign.ts +++ b/src/hooks/useAlign.ts @@ -698,8 +698,8 @@ export default function useAlign( popupMirrorRect.bottom - popupRect.y - (nextOffsetY + popupRect.height); if (scaleX === 1) { - nextOffsetX = Math.round(nextOffsetX); - offsetX4Right = Math.round(offsetX4Right); + nextOffsetX = Math.floor(nextOffsetX); + offsetX4Right = Math.floor(offsetX4Right); } if (scaleY === 1) { From d80e2401fb4d44ef69c9e62f15e0847bc4c82cf6 Mon Sep 17 00:00:00 2001 From: aojunhao123 <1844749591@qq.com> Date: Sat, 10 Jan 2026 22:45:39 +0800 Subject: [PATCH 2/2] chore: adjust --- src/hooks/useAlign.ts | 4 ++-- tests/align.test.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/hooks/useAlign.ts b/src/hooks/useAlign.ts index 610f2280..db297856 100644 --- a/src/hooks/useAlign.ts +++ b/src/hooks/useAlign.ts @@ -703,8 +703,8 @@ export default function useAlign( } if (scaleY === 1) { - nextOffsetY = Math.round(nextOffsetY); - offsetY4Bottom = Math.round(offsetY4Bottom); + nextOffsetY = Math.floor(nextOffsetY); + offsetY4Bottom = Math.floor(offsetY4Bottom); } const nextOffsetInfo = { diff --git a/tests/align.test.tsx b/tests/align.test.tsx index 858f312b..d4e7386b 100644 --- a/tests/align.test.tsx +++ b/tests/align.test.tsx @@ -272,7 +272,7 @@ describe('Trigger.Align', () => { }); }); - it('round when decimal precision', async () => { + it('floor when decimal precision', async () => { rectX = 22.6; rectY = 33.4; rectWidth = 33.7; @@ -293,7 +293,7 @@ describe('Trigger.Align', () => { await awaitFakeTimer(); expect(document.querySelector('.rc-trigger-popup')).toHaveStyle({ - top: `56px`, + top: `55px`, }); });