收藏
回答

onPageScroll 在真机上面有延迟

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug onPageScroll 客户端 v7..0 2.4.3

- 当前 Bug 的表现(可附上截图)

ios是在触摸滑动停止后才会触发onPageScroll,虽然onPageScroll 一直在监听


- 预期表现

onPageScroll 一直在监听 客户端可以立即执行

- 复现路径


- 提供一个最简复现 Demo

wxml

...

<view class='{{isLong?"top-menu fixed":"top-menu"}}'></view>

...

wxss

.top-menu{

    width: 670rpx;

    padding:15rpx 40rpx;

    /* height: 80rpx; */

    display: flex;

    align-items: center;

    text-align: center;

    border-bottom: 1px solid #cdcdcd;

    background: #f3f3f3;

    position: absolute;

    top: -26rpx;

    left: 0;

    z-index: 999

}

.fixed{

    position: fixed;

    top:0rpx;

}

...

js

data:{

    isLong:false

},

onPageScroll: function (e) {

console.log(e);//{scrollTop:99}

let sumNum = (this.data.height1 - 0) + (this.data.height2 - 0) + (this.data.height3 - 0) + (this.data.height4 - 0) //获取了需要变化的高度

if (e.scrollTop > sumNum && !this.data.islong ){

  this.setData({

    islong:true

  })

} else if (e.scrollTop < sumNum && this.data.islong){

  this.setData({

    islong: false

  })

}

}






最后一次编辑于  2019-03-21
回答关注问题邀请回答
收藏

1 个回答

  • 卢霄霄
    卢霄霄
    2019-03-21

    能用相交状态监听来做不?或者json里加个"usingComponents":{}试试呢

    2019-03-21
    有用
    回复 25
    • XuHao.CHEN
      XuHao.CHEN
      2019-03-21

      我来试试看,没有用过这个

      2019-03-21
      回复
    • 卢霄霄
      卢霄霄
      2019-03-21回复XuHao.CHEN

      这个很怪,模拟器上可能会有延迟 但是真机上好得多

      2019-03-21
      回复
    • XuHao.CHEN
      XuHao.CHEN
      2019-03-21回复卢霄霄

      是这样的~不过ios真机上面需要触摸滚动停止后才能触发~ 所以体验还是有点差

      2019-03-21
      回复
    • 卢霄霄
      卢霄霄
      2019-03-21回复XuHao.CHEN

      我是说相交状态哦。。你要把onPageScroll 这个监听完全删了,然后用相交状态监听做。

      2019-03-21
      回复
    • XuHao.CHEN
      XuHao.CHEN
      2019-03-21回复卢霄霄

      好的,我试试看,如果有疑问在请教你,谢谢~

      2019-03-21
      回复
    查看更多(20)
登录 后发表内容