溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

微信小程序如何實現(xiàn)上拉加載功能

發(fā)布時間:2020-07-21 17:17:56 來源:億速云 閱讀:209 作者:小豬 欄目:web開發(fā)

小編這次要給大家分享的是微信小程序如何實現(xiàn)上拉加載功能,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

本文實例講述了微信小程序?qū)崿F(xiàn)上拉加載功能。分享給大家供大家參考,具體如下:

開發(fā)需求

進入頁面,加載初始數(shù)據(jù),當(dāng)向上拖動頁面至底部,自動加載新的數(shù)據(jù),即上拉加載更多數(shù)據(jù)。

微信小程序如何實現(xiàn)上拉加載功能

演示

微信小程序如何實現(xiàn)上拉加載功能

index.wxml

<!-- 數(shù)據(jù)列表 -->
<view wx:for="{{listdata}}" wx:key="listdata" class='listitem'>
 <view class='title'>{{item.title}}</view>
 <view class='title'>資源ID:{{item.id}}</view>
 <image src="{{item.coverimg}}" class='cover'></image>
</view>

<!-- 如果還有更多數(shù)據(jù)可以加載,則顯示玩命加載中 -->
<view class="load-more-wrap">
<block wx:if="{{hasMore}}">
 <view class="load-content">
 <text class="weui-loading"/><text class="loading-text">玩命加載中</text>
 </view>
</block>
<!-- 否則顯示沒有更多內(nèi)容了 -->
<block wx:else>
 <view class="load-content">
 <text>沒有更多內(nèi)容了</text>
 </view>
</block>
</view>

index.js

Page({
 data: {
 listdata:[], //數(shù)據(jù)
 moredata: '',
 p:0, //當(dāng)前分頁;默認第一頁
 hasMore:true //提示
 },

 //加載初始數(shù)據(jù)
 onLoad: function (options) {
 var that = this;

 //初始頁面
 var p = that.data.p;
 this.loadmore();
 },

 //觸底事件
 onReachBottom:function(){
 var that = this;
 //檢查是否還有數(shù)據(jù)可以加載
 var moredata = that.data.moredata;
 //如果還有,則繼續(xù)加載
 if (moredata.more != 0) {
  this.loadmore();
  //如果沒有了,則停止加載,顯示沒有更多內(nèi)容了
 }else{
  that.setData({
  "hasMore": false
  })
 }
 },

 //發(fā)起請求
 loadmore:function(){

 //加載提示
 wx.showLoading({
  title: '加載中',
 })

 var that = this;
 //頁面累加
 var p = ++that.data.p;

 //請求服務(wù)器
 wx.request({
  url: '你的服務(wù)器/server.php&#63;page=' + p,
  data: {
  "json": JSON.stringify({
   "p": p
  })
  },

  method: 'POST',
  header: {
  'content-type': 'application/x-www-form-urlencoded'
  },

  //請求成功,回調(diào)函數(shù)
  success:function(res){
  
  //隱藏加載提示
  wx.hideLoading();

  //判斷市局是否為空
  if (res.data != 0) {
   that.setData({
   //把新加載的數(shù)據(jù)追加到原有的數(shù)組
   "listdata": that.data.listdata.concat(res.data), //加載數(shù)據(jù)
   "moredata": res.data,
   "p":p
   })
  } else {
   that.setData({
   "hasMore":false
   })
  }
  }
 })
 }
})

說明

1、url修改為你的服務(wù)端鏈接,格式是

http:域名/目錄/&#63;page=頁碼

例如:

http://www.baidu.com/api/data.php&#63;page=1

頁碼是可變的,所以聲明一個變量p,所以就是

`url: 'http://www.baidu.com/api/data.php&#63;page' + p,`

index.wxss

.listitem{
 width: 90%;
 height: 155px;
 background: rgba(0, 0, 0, 0.2);
 margin:10px auto;
 text-align: center;
 position: relative;
 color:#fff;
}

.listitem .cover{
 width:100%;
 height:155px;
 position: absolute;
 top: 0;
 left: 0;
 z-index: -100;
}

.load-more-wrap .load-content{
 text-align: center;
 margin:30px auto 30px;
 color:#ccc;
 font-size: 15px;
}

服務(wù)端返回的數(shù)據(jù)格式

返回json數(shù)組的形式,例如

[
 {"id":"1","title":"標(biāo)題1","coverimg":"url1"},
 {"id":"2","title":"標(biāo)題2","coverimg":"url2"},
 {"id":"3","title":"標(biāo)題3","coverimg":"url3"},
 {"id":"4","title":"標(biāo)題4","coverimg":"url4"},
 {"id":"5","title":"標(biāo)題5","coverimg":"url5"}
]

看完這篇關(guān)于微信小程序如何實現(xiàn)上拉加載功能的文章,如果覺得文章內(nèi)容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI