uni-app 更新HX 3.1.22后 scroll-view组件设置scroll-y为true时 touchmove事件失效

uni-app 更新HX 3.1.22后 scroll-view组件设置scroll-y为true时 touchmove事件失效

开发环境 版本号 项目创建方式
Windows 10 HBuilderX
3.1.22

操作步骤:

.

预期结果:

.

实际结果:

.

bug描述:

更新HX 3.1.22 scroll-view组件设置scroll-y为true touchmove事件失效


更多关于uni-app 更新HX 3.1.22后 scroll-view组件设置scroll-y为true时 touchmove事件失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

更多关于uni-app 更新HX 3.1.22后 scroll-view组件设置scroll-y为true时 touchmove事件失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


是在开始下拉刷新的时候touchmove事件失效了吗?

H5测试的 下拉时touchmove没有被触发,我项目中所有封装的组件只要用到scroll-view组件设置scroll-y为true全部无效了,上个版本以前全部正常

回复 3***@qq.com:明白

已确认,已加分,预计下版修复

3.2.0 alpha 已修复

在uni-app HBuilderX 3.1.22版本中,scroll-view组件启用纵向滚动(scroll-y="true")时touchmove事件失效,可能是由于框架底层的事件处理机制变更导致的兼容性问题。

原因分析:

  1. 事件冲突处理scroll-view在开启滚动时,框架可能优先拦截touchmove事件用于滚动处理,导致自定义的touchmove监听无法触发。
  2. 手势优先级调整:HX 3.1.22可能优化了手势响应逻辑,滚动容器内默认阻止了部分非必要的事件传递。

解决方案:

  1. 添加事件修饰符:在[@touchmove](/user/touchmove)事件中尝试使用.capture.native修饰符(若平台支持):
    <scroll-view scroll-y="true" [@touchmove](/user/touchmove).capture="onTouchMove">
    
  2. 启用事件捕获:通过capture-catch:touchmove强制捕获事件(微信小程序等平台适用):
    <scroll-view scroll-y="true" capture-catch:touchmove="onTouchMove">
回到顶部