在onPageScroll监听,到达某个位置置顶,ios真机测试延迟?
发布于 5 年前 作者 xiaqiang 8567 次浏览 来自 官方Issues

onPageScroll监听页面,滑动到某位置置顶元素,但是ios真机测试时滑的很快,会延迟好几秒才置顶?可否改善?有替代方法吗?

以下是代码片段:

https://developers.weixin.qq.com/s/u1xqBCmZ7qaQ

3 回复

不要在onPageScroll函数中频繁调用setData,非常耗性能的。

吸顶效果可以使用样式 position: sticky ; top: 0;

你只需要保证你需要实现吸顶效果的元素是page的子元素就行了

老哥解决了吗?我这边也是,预览安卓ios都没问题,但是真机调试ios只有在滚动结束才会触发事件

这个问题很容易解决。

思路很简单,规定一个刷新率,比如5。函数每调用5次,再执行一次渲染。这样基本上可以解决低效的问题。

onPageScroll:function(e){
  if(this.data.setDataCount || this.data.setDataCount<=0){
    if(this.data.setDataCount<=0){
      //执行渲染
      this.setData(e)
      //重置次数
      this.data.setDataCount = 5
    }else{
      //倒数。
      this.data.setDataCount -= 1
    }
  }else{
    //第一次调用,建立变量
    this.data['setDataCount'] = 5
  }
},

但是,过快滑动可能导致部分区域被忽略。这个可以自行优化

回到顶部