Appearance
“过度关心”我们的 ScrollView
- 小程序
- Taro
前言
接到个需求,监控系统的一个页面,当它滚动到一定距离时,将显示区中的内容 A 替换为内容 B
在小程序中我们想实现滚动的效果,就必须使用ScrollView组件,是没有办法像我们写 web 的 h5 一样加个
overflow: "auto"
之类的就能够实现滚动的。
这心想,scrollView 有提供一个onScroll
事件,监控这个onScroll
事件不就好了,这个需求轻轻松松!拿捏它!😄
问题
onScroll
事件的回调参数并不准确,当手抖用户滑动的比较快的情况,就会出现不准确的情况!
这个本质上其实是微信有做一些节流操作,所以当我们滚动过快的时候,有个别的滚动事件触发的回调函数就会被自然的给屏蔽掉。
相关 issue 和文档:
解决
目前并没有找到直接和方便的解决方案,官方给出一个方案是使用@tarojs/plugin-inject
这个库,注入取消scrollView的节流,但是这个改动比较大,且涉及一些库的版本匹配问题,所以有这类需求还是尽量避开看看有没有什么其他的解决方案吧。