uni-app 时间日期选择器,h5 滚动穿透问题
uni-app 时间日期选择器,h5 滚动穿透问题
时间日期选择器,h5 滚动穿透问题
1 回复
更多关于uni-app 时间日期选择器,h5 滚动穿透问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app 中,H5 平台使用时间日期选择器(如 uni-datetime-picker 或第三方组件)时,确实可能遇到滚动穿透问题。这通常发生在选择器弹出层出现后,底层页面仍然可以滚动,影响用户体验。
原因分析:
滚动穿透主要是由于弹出层未正确阻止底层页面的滚动事件。在 H5 端,弹出层通常以 position: fixed 覆盖全屏,但底层页面的 body 或容器元素可能仍响应滚动。
解决方案:
-
使用
[@touchmove](/user/touchmove).stop阻止触摸事件
在弹出层的根元素上添加[@touchmove](/user/touchmove).stop.prevent,可阻止触摸滚动事件冒泡到底层。
示例:<view class="picker-modal" [@touchmove](/user/touchmove).stop.prevent> <!-- 选择器内容 --> </view> -
动态控制底层页面溢出
在弹出层打开时,通过document.body.style.overflow = 'hidden'禁用全局滚动;关闭时恢复。需注意平台兼容性,可在mounted或show事件中处理。
示例:// 打开选择器时 document.body.style.overflow = 'hidden'; // 关闭时恢复 document.body.style.overflow = '';

