微信小程序 詳解下拉加載與上拉刷新實現(xiàn)方法
微信小程序下拉刷新上拉加載的兩種實現(xiàn)方法
實現(xiàn)效果圖:

方法一:onPullDownRefresh和onReachBottom方法實現(xiàn)小程序下拉加載和上拉刷新
首先要在json文件里設(shè)置window屬性
| 屬性 | 類型 | 描述 |
| enablePullDownRefresh | Boolean | 是否開啟下拉刷新,詳見頁面相關(guān)事件處理函數(shù)。 |
設(shè)置js里onPullDownRefresh和onReachBottom方法
| 屬性 | 類型 | 描述 |
| onPullDownRefresh | function | 頁面相關(guān)事件處理函數(shù)——監(jiān)聽用戶下拉動作 |
| onReachBottom | function | 頁面上拉觸發(fā)底事件的處理函數(shù) |
下拉加載說明:
當(dāng)處理完數(shù)據(jù)刷新后,wx.stopPullDownRefresh可以停止當(dāng)前頁面的下拉刷新。
onPullDownRefresh(){
console.log('--------下拉刷新-------')
wx.showNavigationBarLoading() //在標(biāo)題欄中顯示加載
wx.request({
url: 'https://URL',
data: {},
method: 'GET',
// OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
// header: {}, // 設(shè)置請求的 header
success: function(res){
// success
},
fail: function() {
// fail
},
complete: function() {
// complete
wx.hideNavigationBarLoading() //完成停止加載
wx.stopPullDownRefresh() //停止下拉刷新
}
})
方法二:
在scroll-view里設(shè)定bindscrolltoupper和bindscrolltolower實現(xiàn)微信小程序下拉
| 屬性 | 類型 | 描述 |
| bindscrolltoupper | EventHandle | 滾動到頂部/左邊,會觸發(fā) scrolltoupper 事件 |
| bindscrolltolower | EventHandle |
滾動到底部/右邊,會觸發(fā) scrolltolower 事件 |
index.wxml
<!--index.wxml-->
<view class="container" style="padding:0rpx">
<!--垂直滾動,這里必須設(shè)置高度-->
<scroll-view scroll-top="{{scrollTop}}" scroll-y="true" style="height:{{scrollHeight}}px;"
class="list" bindscrolltolower="bindDownLoad" bindscrolltoupper="topLoad" bindscroll="scroll">
<view class="item" wx:for="{{list}}">
<image class="img" src="{{item.pic_url}}"></image>
<view class="text">
<text class="title">{{item.name}}</text>
<text class="description">{{item.short_description}}</text>
</view>
</view>
</scroll-view>
<view class="body-view">
<loading hidden="{{hidden}}" bindchange="loadingChange">
加載中...
</loading>
</view>
</view>
index.js
var url = "http://www.imooc.com/course/ajaxlist";
var page =0;
var page_size = 5;
var sort = "last";
var is_easy = 0;
var lange_id = 0;
var pos_id = 0;
var unlearn = 0;
// 請求數(shù)據(jù)
var loadMore = function(that){
that.setData({
hidden:false
});
wx.request({
url:url,
data:{
page : page,
page_size : page_size,
sort : sort,
is_easy : is_easy,
lange_id : lange_id,
pos_id : pos_id,
unlearn : unlearn
},
success:function(res){
//console.info(that.data.list);
var list = that.data.list;
for(var i = 0; i < res.data.list.length; i++){
list.push(res.data.list[i]);
}
that.setData({
list : list
});
page ++;
that.setData({
hidden:true
});
}
});
}
Page({
data:{
hidden:true,
list:[],
scrollTop : 0,
scrollHeight:0
},
onLoad:function(){
// 這里要注意,微信的scroll-view必須要設(shè)置高度才能監(jiān)聽滾動事件,所以,需要在頁面的onLoad事件中給scroll-view的高度賦值
var that = this;
wx.getSystemInfo({
success:function(res){
that.setData({
scrollHeight:res.windowHeight
});
}
});
loadMore(that);
},
//頁面滑動到底部
bindDownLoad:function(){
var that = this;
loadMore(that);
console.log("lower");
},
scroll:function(event){
//該方法綁定了頁面滾動時的事件,我這里記錄了當(dāng)前的position.y的值,為了請求數(shù)據(jù)之后把頁面定位到這里來。
this.setData({
scrollTop : event.detail.scrollTop
});
},
topLoad:function(event){
// 該方法綁定了頁面滑動到頂部的事件,然后做上拉刷新
page = 0;
this.setData({
list : [],
scrollTop : 0
});
loadMore(this);
console.log("lower");
}
})
index.wxss
/**index.wxss**/
.userinfo {
display: flex;
flex-direction: column;
align-items: center;
}
.userinfo-avatar {
width: 128rpx;
height: 128rpx;
margin: 20rpx;
border-radius: 50%;
}
.userinfo-nickname {
color: #aaa;
}
.usermotto {
margin-top: 200px;
}
/**/
scroll-view {
width: 100%;
}
.item {
width: 90%;
height: 300rpx;
margin: 20rpx auto;
background: brown;
overflow: hidden;
}
.item .img {
width: 430rpx;
margin-right: 20rpx;
float: left;
}
.title {
font-size: 30rpx;
display: block;
margin: 30rpx auto;
}
.description {
font-size: 26rpx;
line-height: 15rpx;
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- 微信小程序?qū)崿F(xiàn)觸底加載與下拉刷新的示例代碼
- 微信小程序?qū)崿F(xiàn)上拉加載功能示例【加載更多數(shù)據(jù)/觸底加載/點擊加載更多數(shù)據(jù)】
- 微信小程序 列表的上拉加載和下拉刷新的實現(xiàn)
- 微信小程序下拉加載和上拉刷新兩種實現(xiàn)方法詳解
- 微信小程序 scroll-view實現(xiàn)上拉加載與下拉刷新的實例
- 微信小程序?qū)崿F(xiàn)列表下拉刷新上拉加載
- 微信小程序(六):列表上拉加載下拉刷新示例
- 詳解微信小程序開發(fā)之下拉刷新 上拉加載
- 微信小程序列表渲染功能之列表下拉刷新及上拉加載的實現(xiàn)方法分析
- 微信小程序?qū)崿F(xiàn)觸底加載
相關(guān)文章
ResizeObserver 監(jiān)視 DOM大小變化示例詳解
這篇文章主要為大家介紹了ResizeObserver 監(jiān)視 DOM大小變化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10
JavaScript?API?ResizeObserver使用示例
這篇文章主要為大家介紹了JavaScript?API?ResizeObserver的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07

