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>
网友评论