我在Taro开发微信小程序时,想监听页面的滚动事件,用了Taro.createSelectorQuery()和onPageScroll都不太对,页面根本没触发。
查了文档说要在页面配置里加"enablePageScroll": true,但加了也没用。我的页面结构是普通的ScrollView包裹内容,是不是不能同时用ScrollView和onPageScroll?
export default {
onPageScroll(e) {
console.log('scroll', e.scrollTop)
}
}
如果你的页面用的是ScrollView组件,那onPageScroll根本不会触发,因为ScrollView内部滚动是组件级别的事件,不会冒泡到页面级别。你应该用ScrollView的onScroll属性来监听。
如果你想用onPageScroll让整个页面滚动,那就不能用ScrollView包裹,要让页面本身滚动。需要在页面配置里开启:
然后页面不要用ScrollView,直接放内容就行:
总结一下:ScrollView滚动用onScroll,页面滚动用onPageScroll,两者只能选一个,不能同时用。你之前的情况就是页面被ScrollView撑开了,页面本身没有滚动,所以onPageScroll不会触发。