swiper,swiper-item开发tab滑动效果。为什么onReachBottom只能执行一次,再往下滑动就执行不了。
贴代码:
< swiper class = "swiper-box" current = "{{currentTab}}" duration = "300" bindchange = "swichTab" style = "height:{{clientHeight?clientHeight+'px':'auto'}}" > < swiper-item class = "swiper-item" > < block wx:for = "{{projectList}}" wx:key = "*this" > < view data-pid = "{{item.id}}" class = "project-list" bindtap = 'newsClick' > < view class = 'project-info' > < view class = 'name' >{{item.name}}</ view > < view class = 'info' >发布单位:{{item.pname}} </ view > < view class = 'info' >发布时间:{{item.publishtime}} </ view > </ view > < view class = 'project-img' > < image class = 'img' src = '{{item.url}}' mode = "scaleToFill" lazy-load = "true" ></ image > </ view > </ view > </ block > < view class = "weui-loadmore" hidden = "{{isHideLoadMore}}" > < view class = "weui-loading" ></ view > < view class = "weui-loadmore__tips" >正在加载</ view > </ view > </ swiper-item > </ swiper > |
你的意思是滚动区域是在swiper里面?
这时候并不是页面本身在滚动。你需要用scroll-view和它的bindscrolltolower。
横向的swiper不会带来上下滑动的。但是 onReachBottom 需要在页面本身能够上下滑动时才有意义。所以想知道你页面的上下滑动是怎么做的。
抱歉,我还不是很理解你的问题。
swiper本身只有左右滑动的机制,为什么会有上下滑动才会有的触底刷新呢?
你好,onReachBottom onPullDownRefresh 针对的是页面本身的滚动,不能用于有scroll-view滚动时的情况。
onReachBottom 和 swiper没关系啊~
<view class=
"record-data"
>
<swiper current=
"{{swiperIndex}}"
bindchange=
"swiperChange"
style=
"height:{{swiperHeight}}"
>
<swiper-item>
<scroll-view style=
"height: {{swiperHeight}}"
scroll-y bindscrolltolower=
"loadMoreData"
>
<view class=
"record-list"
>
<view class=
"record-item"
wx:
for
=
"{{orders}}"
wx:key=
"{{index}}"
>
这是循环的内容
</view>
</view>
</scroll-view>
</swiper-item>
</swiper>
</view>
loadMoreData:
function
() {
let pageNo =
this
.data.curPage;
let pullDownRefreshState =
this
.data.pullDownRefreshState;
if
(pullDownRefreshState) {
if
(pageNo <
this
.data.totalPage) {
pageNo++;
this
.setData({
curPage: pageNo
})
this
.getOrderList(pageNo);
}
else
{
wx.showToast({
title:
'全部数据已加载完毕'
,
icon:
'none'
,
duration: 1500,
mask:
true
})
}
}
}
这是我的解决方案,这里的关键是:利用scroll-view 的bindscrolltolower方法,注意:一定要给scroll-view 的高度赋值!
您好,您看我上面贴出来的代码,没有scroll-view,就是用swiper,swiper-item做下拉刷新和上拉加载的。
但是不知道为什么,onReachBottom就是只触发一次,然后就不触发了,也不报错。
没有人碰到过吗?
是顶部tab的问题,你拖动顶部tab上拉就可以加载下一页了,包括下拉刷新也要拖动顶部tab
请问解决了吗
应该是这样的结构
<
swiper
>
<
swiper-item
>
<
scroll-view
>
</
scroll-view
>
</
swiper-item
>
</
swiper
>
无限加载写在 scroll-view 的 bindscrolltolower 上,页面的下拉刷新可以通过 scroll-view 的 bindscrolltoupper 事件来触发 wx.startPullDownRefresh(),或者监听 scroll-view 的滚动事件 bindscroll,又或者你的 scroll-view 并没有占据页面全高,比如说设计上有顶部信息区域,这些 scroll-view 以外的区域是可以执行下拉刷新的,我是这么干的