lcysgsg
lcysgsg
  • 发布:2019-03-22 16:20
  • 更新:2021-12-02 12:00
  • 阅读:19660

uni-app 中的组件怎么监听页面滚动?

分类:uni-app

想把关于滚动的逻辑封装进组件里, 但是为什么为什么为什么不能做啊, 不敢用 window.addEventListener 要跑多端的, onPageScroll又不能触发.
我应该怎么做?

2019-03-22 16:20 负责人:无 分享
已邀请:
DCloud_uniAD_HDX

DCloud_uniAD_HDX

换个思路来解决

在页面onPageScroll 里改变组件

  • lcysgsg (作者)

    这样每个用到组件的页面都要加一个data一个onPageScroll了, 虽然只是复制黏贴, 但感觉总是不得劲。 不过也只能这样了,谢谢。

    2019-03-24 11:26

  • 青龙

    组件里怎么获取动态的scrollTop,谢啦!!☆⌒(*^-゜)v

    2019-08-31 17:06

yoggexu

yoggexu

ios 把 页面的 滚动去掉,用scroll-view 来做,监听 scroll-view的 @scroll 事件

2***@qq.com

2***@qq.com

可以考虑在组件中使用

import Vue from 'vue';  

Vue.mixin({  
  onPageScroll() {  
    console.log('scroll');  
  }  
});

来监听页面滚动。

  • rd

    mixin在uniapp还是有问题的

    2020-08-03 10:59

3***@qq.com

3***@qq.com

想知道你最后怎么解决的

lcysgsg

lcysgsg (作者)

最后就是从页面里传进去,上面提到的mixin也可以吧

b***@163.com

b***@163.com

页面添加滚动事件
uni.$emit('onPageScroll', res.scrollTop);
对应的子组件添加监听
mounted() {
var that = this;
uni.$on('onPageScroll', function(opt) {
console.log(opt);
that.scrollTop = opt;
});
},

该问题目前已经被锁定, 无法添加新回复