From 3cf9adfd4978675b416684923189a8e971124686 Mon Sep 17 00:00:00 2001 From: jmal Date: Tue, 5 Aug 2025 17:14:31 +0800 Subject: [PATCH] =?UTF-8?q?fix(utils):=20=E4=BC=98=E5=8C=96=20scrollLockMi?= =?UTF-8?q?xin=20=E4=BB=A5=E6=81=A2=E5=A4=8D=E5=8E=9F=E5=A7=8B=E6=BB=9A?= =?UTF-8?q?=E5=8A=A8=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 disableBodyScroll 方法中保存原始的 body overflow 样式 - 修改 enableBodyScroll 方法以恢复原始样式,而不是固定设置为 'auto' - 优化了组件销毁前的清理逻辑,确保滚动功能始终正确恢复 --- src/utils/scrollLockMixin.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/utils/scrollLockMixin.js b/src/utils/scrollLockMixin.js index 0a9a37c..6717aac 100644 --- a/src/utils/scrollLockMixin.js +++ b/src/utils/scrollLockMixin.js @@ -1,16 +1,22 @@ export const scrollLockMixin = { + data() { + return { + originalBodyOverflow: '', + }; + }, methods: { // 鼠标进入滚动区域时,禁止body滚动 disableBodyScroll() { + this.originalBodyOverflow = document.body.style.overflow; document.body.style.overflow = 'hidden'; }, // 鼠标离开时,恢复body滚动 enableBodyScroll() { - document.body.style.overflow = 'auto'; // 或者 'visible' - } + document.body.style.overflow = this.originalBodyOverflow; + }, }, // 关键:在组件销毁前,确保恢复body滚动,防止页面卡死 beforeDestroy() { this.enableBodyScroll(); - } + }, };