微信小程序?qū)崿F(xiàn)上拉加載功能示例【加載更多數(shù)據(jù)/觸底加載/點(diǎn)擊加載更多數(shù)據(jù)】
本文實(shí)例講述了微信小程序?qū)崿F(xiàn)上拉加載功能。分享給大家供大家參考,具體如下:
開發(fā)需求
進(jìn)入頁面,加載初始數(shù)據(jù),當(dāng)向上拖動(dòng)頁面至底部,自動(dòng)加載新的數(shù)據(jù),即上拉加載更多數(shù)據(jù)。
演示
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)前分頁;默認(rèn)第一頁 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ā)起請(qǐng)求 loadmore:function(){ //加載提示 wx.showLoading({ title: '加載中', }) var that = this; //頁面累加 var p = ++that.data.p; //請(qǐng)求服務(wù)器 wx.request({ url: '你的服務(wù)器/server.php?page=' + p, data: { "json": JSON.stringify({ "p": p }) }, method: 'POST', header: { 'content-type': 'application/x-www-form-urlencoded' }, //請(qǐng)求成功,回調(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:域名/目錄/?page=頁碼
例如:
http://www.baidu.com/api/data.php?page=1
頁碼是可變的,所以聲明一個(gè)變量p,所以就是
`url: 'http://www.baidu.com/api/data.php?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"} ]
希望本文所述對(duì)大家微信小程序設(shè)計(jì)有所幫助。
- 微信小程序?qū)崿F(xiàn)觸底加載與下拉刷新的示例代碼
- 微信小程序 列表的上拉加載和下拉刷新的實(shí)現(xiàn)
- 微信小程序 詳解下拉加載與上拉刷新實(shí)現(xiàn)方法
- 微信小程序下拉加載和上拉刷新兩種實(shí)現(xiàn)方法詳解
- 微信小程序 scroll-view實(shí)現(xiàn)上拉加載與下拉刷新的實(shí)例
- 微信小程序?qū)崿F(xiàn)列表下拉刷新上拉加載
- 微信小程序(六):列表上拉加載下拉刷新示例
- 詳解微信小程序開發(fā)之下拉刷新 上拉加載
- 微信小程序列表渲染功能之列表下拉刷新及上拉加載的實(shí)現(xiàn)方法分析
- 微信小程序?qū)崿F(xiàn)觸底加載
相關(guān)文章
微信小程序?qū)崿F(xiàn)打開內(nèi)置地圖功能【附源碼下載】
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)打開內(nèi)置地圖功能,涉及微信小程序使用wx.openLocation函數(shù)獲取經(jīng)緯度信息的相關(guān)使用技巧,并附帶源碼供讀者下載參考,需要的朋友可以參考下2017-12-12使用JS實(shí)現(xiàn)在空白頁上展示出一個(gè)有趣的時(shí)鐘
在我們?nèi)粘5木W(wǎng)頁瀏覽中,空白的頁面往往會(huì)被視為一種無趣的事物,一片等待填充的空間,今天我們來學(xué)習(xí)一下如何使用JS在空白的網(wǎng)頁上展示出一個(gè)有趣的時(shí)鐘吧,感興趣的小伙伴跟著小編一起來看看吧2024-04-04JS如何將數(shù)字金額轉(zhuǎn)換成中文金額格式
這篇文章主要介紹了JS如何將數(shù)字金額轉(zhuǎn)換成中文金額格式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07微信小程序?qū)崿F(xiàn)驗(yàn)證碼獲取倒計(jì)時(shí)效果
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)驗(yàn)證碼獲取倒計(jì)時(shí)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02