UNPKG

@hzy1123581324/z-view-ui

Version:

z-view-ui是使用vue3开发的组件,开发中,有部分组件功能未实现,慎用

43 lines (40 loc) 1.24 kB
import {onPageScroll,onShow,onHide } from "@dcloudio/uni-app"; import { debounce } from "../utils/optimize.js"; import {ref } from "vue"; export const userScroll = ({ rememberTabPageScroll = false, } = {}) => { let isScrolling = ref(false); let timer = null; // 这是页面记录滚动位置 let scrollTop = ref(0); let pageHide = false; const scrollFunc = debounce((e) => { scrollTop.value = e.detail.scrollTop; }) onPageScroll((e) => { pageHide || (scrollTop.value = e.scrollTop); isScrolling.value = true; clearTimeout(timer); timer = setTimeout(() => { isScrolling.value = false; }, 400) }) rememberTabPageScroll && onShow(() => { pageHide = false; setTimeout(() => { uni.pageScrollTo({ duration: -1, //过渡时间必须为0,uniapp bug,否则运行到手机会报错 scrollTop: scrollTop.value, //滚动到实际距离是元素距离顶部的距离减去最外层盒子的滚动距离  }) }, 100); onHide(() => { pageHide = true; }) }) return { isScrolling, scrollFunc, scrollTop, } }