Skip to content

“过度关心”我们的 ScrollView

  • 小程序
  • Taro

前言

接到个需求,监控系统的一个页面,当它滚动到一定距离时,将显示区中的内容 A 替换为内容 B

在小程序中我们想实现滚动的效果,就必须使用ScrollView组件,是没有办法像我们写 web 的 h5 一样加个overflow: "auto"之类的就能够实现滚动的。

这心想,scrollView 有提供一个onScroll事件,监控这个onScroll事件不就好了,这个需求轻轻松松!拿捏它!😄

问题

onScroll事件的回调参数并不准确,当手抖用户滑动的比较快的情况,就会出现不准确的情况!

这个本质上其实是微信有做一些节流操作,所以当我们滚动过快的时候,有个别的滚动事件触发的回调函数就会被自然的给屏蔽掉。

相关 issue 和文档:

解决

目前并没有找到直接和方便的解决方案,官方给出一个方案是使用@tarojs/plugin-inject这个库,注入取消scrollView的节流,但是这个改动比较大,且涉及一些库的版本匹配问题,所以有这类需求还是尽量避开看看有没有什么其他的解决方案吧。