美文网首页
onReachBottom分页有时不触发

onReachBottom分页有时不触发

作者: hey_沙子 | 来源:发表于2019-10-28 20:10 被阅读0次

onReachBottom:页面上拉触底事件需在当前页面的json文件中设置onReachBottomDistance(页面上拉触底事件触发时距页面底部距离,单位为px,默认为50,根据需要可以设置不同值)

//页面上拉触底事件
onReachBottom: function () {
    var that = this;
    if (that.data.isShow == 2) {
      // 如果正在加载中,不在继续加载
      return;
   }
    var pageIndex = that.data.pageIndex;
    var totalpage = that.data.totalpage;
    var offset = that.data.offset;
    var count = that.data.count;
    pageIndex++;
    offset = count * (pageIndex - 1)
    if (offset < 0) {
      offset = 0;
    }
    that.setData({
      pageIndex: pageIndex,
      offset: offset,
    })
    if (pageIndex <= totalpage) {
      that.setData({
        isShow: 2
      })
      that.getStoreIndexProductInfo();//加载数据接口
    } else {
      that.setData({
        isShow: 1,//显示底线
      })
    }
}

这是个page事件,即页面事件,普通的view等是可以下拉实现分页的
注:一些在swiper控件中用该方法实现分页,我们发现有时触发有时不触发,这是为什么呢?

要知道为什么这个事件不执行,因为他是个页面事件,而此时我们用的swiper,里面包含的scroll-view,它本身就有个滑动的效果,我们多次测试可以看到右侧有两个不同的滑条,是不一样大小的,一个是页面的,一个则是scroll-view的,当我们的滑动的是scroll-view的滑块时,此时onReachBottom不执行,这就是为啥分页事件时灵时不灵,我们应该用scroll-view的bindscrolltolower事件

image.png
<swiper current="{{currentTab}}" duration="300" bindchange="swiperTab" class="swiper"> 
  <!-- 综合排序结果 -->
  <swiper-item>
    <scroll-view scroll-y='true' bindscrolltolower="loadMore">
       <view class="h-gwc">...</view>
    </scroll-view>
  </swiper-item>
  <!-- 销量排序结果 -->
  <swiper-item>
    <scroll-view scroll-y='true' bindscrolltolower="loadMore">
        <view class="h-gwc">... </view>
    </scroll-view>
  </swiper-item>
  <!-- 价格排序结果 -->
  <swiper-item>
      <scroll-view scroll-y='true' bindscrolltolower="loadMore">
          <view class="h-gwc">... </view>
      </scroll-view>
    </swiper-item>
</swiper>

相关文章

网友评论

      本文标题:onReachBottom分页有时不触发

      本文链接:https://www.haomeiwen.com/subject/vpofvctx.html