Taro中如何正确监听页面滚动事件?

子源~ 阅读 26

我在Taro开发微信小程序时,想监听页面的滚动位置,但用onPageScroll好像没生效,控制台也没报错。

页面结构是普通ScrollView包裹内容,是不是得用别的方法?试过在componentDidMount里加Taro.createSelectorQuery()也不行。

onPageScroll(e) {
  console.log('scroll', e.scrollTop)
}
我来解答 赞 6 收藏
二维码
手机扫码查看
2 条解答
技术玉娟
微信小程序里 ScrollView 要用 onScroll 事件,不是 onPageScroll。改成这样:

onScroll(e) {
console.log('scroll', e.detail.scrollTop)
}


另外检查下 ScrollView 有没有设置 enable-flex 和 scroll-y 属性,这两个漏了也会不触发
点赞 1
2026-03-07 13:07
艺嘉 Dev
唉,又这个坑,我之前这样搞的。

你页面用了ScrollView包裹,那滚动的就是ScrollView组件而不是页面本身,onPageScroll当然不会触发。要么去掉ScrollView让页面直接滚动,要么就用ScrollView的onScroll事件:


  scrollY
onScroll={(e) => {
console.log('scroll', e.detail.scrollTop)
}}
>
{/* 内容 */}


两点要注意:ScrollView必须设置scrollY为true,还要给个固定高度,不然滚不动。
点赞 5
2026-03-01 11:44