fix: PC 端基金详情弹框滚动问题

This commit is contained in:
hzm
2026-03-19 11:27:36 +08:00
parent 8d7f2d33df
commit 6557371f09
3 changed files with 170 additions and 154 deletions

View File

@@ -15,9 +15,11 @@ function lockBodyScroll() {
originalBodyPosition = document.body.style.position || "";
originalBodyTop = document.body.style.top || "";
document.body.style.position = "fixed";
document.body.style.top = `-${lockedScrollY}px`;
document.body.style.width = "100%";
requestAnimationFrame(() => {
document.body.style.top = `-${lockedScrollY}px`;
document.body.style.width = "100%";
document.body.style.position = "fixed";
});
}
}
@@ -28,12 +30,15 @@ function unlockBodyScroll() {
// 只有全部弹框都关闭时才恢复滚动位置
if (scrollLockCount === 0) {
const scrollY = lockedScrollY;
document.body.style.position = originalBodyPosition;
document.body.style.top = originalBodyTop;
document.body.style.width = "";
// 恢复到锁定前的滚动位置,而不是跳到顶部
window.scrollTo(0, lockedScrollY);
requestAnimationFrame(() => {
window.scrollTo(0, scrollY);
});
}
}
@@ -57,4 +62,4 @@ export function useBodyScrollLock(open) {
}
};
}, [open]);
}
}