From 6bcd850bcad892723a6c7efc969a5a42beb5ee38 Mon Sep 17 00:00:00 2001 From: jmal Date: Tue, 5 Aug 2025 17:08:10 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E7=9A=84=E6=BB=9A=E5=8A=A8=E7=A9=BF=E9=80=8F?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ShowFile/ShowFile.vue | 14 +++++++++----- src/utils/scrollLockMixin.js | 16 ++++++++++++++++ 2 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 src/utils/scrollLockMixin.js diff --git a/src/components/ShowFile/ShowFile.vue b/src/components/ShowFile/ShowFile.vue index 9cce890..1258067 100644 --- a/src/components/ShowFile/ShowFile.vue +++ b/src/components/ShowFile/ShowFile.vue @@ -431,10 +431,10 @@
Date: Tue, 5 Aug 2025 17:14:31 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(utils):=20=E4=BC=98=E5=8C=96=20scrollLo?= =?UTF-8?q?ckMixin=20=E4=BB=A5=E6=81=A2=E5=A4=8D=E5=8E=9F=E5=A7=8B?= =?UTF-8?q?=E6=BB=9A=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(); - } + }, };