diff --git a/src/popup/demos/base.vue b/src/popup/demos/base.vue index 888b1e3d0..de25ec165 100644 --- a/src/popup/demos/base.vue +++ b/src/popup/demos/base.vue @@ -3,7 +3,7 @@ {{ p.text }} - + diff --git a/src/popup/popup.vue b/src/popup/popup.vue index e49ac5eb8..36c106e17 100644 --- a/src/popup/popup.vue +++ b/src/popup/popup.vue @@ -4,6 +4,7 @@
(); const currentInstance = getCurrentInstance(); const [currentVisible, setVisible] = useDefault( @@ -56,9 +56,8 @@ export default defineComponent({ // 因为开启 destroyOnClose,会影响 transition 的动画,因此需要前后设置 visible watch(currentVisible, (v) => { - wrapperVisible.value = v; - if (v) { + wrapperVisible.value = v; if (props.destroyOnClose) { nextTick(() => { innerVisible.value = v; @@ -132,37 +131,9 @@ export default defineComponent({ }, ); - const lock = () => { - if (!lockTimes && isBrowser) { - document.body.classList.add(bodyLockClass); - } - - lockTimes++; - }; - - const unlock = () => { - if (lockTimes) { - lockTimes--; + useLockScroll(popupRef, () => wrapperVisible.value && props.preventScrollThrough, popupClass.value); - if (!lockTimes && isBrowser) { - document.body.classList.remove(bodyLockClass); - } - } - }; - - const shouldLock = computed(() => wrapperVisible.value && props.preventScrollThrough); - - watch( - () => shouldLock.value, - (value) => { - value ? lock() : unlock(); - }, - ); - onUnmounted(() => { - unlock(); - }); return { - name, to, popupClass, wrapperVisible,