微信小程序 列表的上拉加載和下拉刷新的實(shí)現(xiàn)
微信小程序可謂是9月21號(hào)之后最火的一個(gè)名詞了,一經(jīng)出現(xiàn)真是轟炸了整個(gè)開(kāi)發(fā)人員,當(dāng)然很多App開(kāi)發(fā)人員有了一個(gè)擔(dān)心,微信小程序的到來(lái)會(huì)不會(huì)讓移動(dòng)端App顛覆,讓移動(dòng)端的程序員失業(yè),身為一個(gè)Android開(kāi)發(fā)者我是不相信的,即使有,那也是需要個(gè)一兩年的過(guò)度和打磨才能實(shí)現(xiàn)的吧。
不管微信小程序是否能顛覆當(dāng)今的移動(dòng)開(kāi)發(fā)格局,我們都要積極向上的心態(tài)去接收,去學(xué)習(xí)。不排斥新技術(shù),所以,心動(dòng)不如行動(dòng),趕緊先搭建一個(gè)微信小程序開(kāi)發(fā)工具。那么接下來(lái)就讓我們來(lái)開(kāi)始學(xué)習(xí)列表的上拉加載和下拉刷新的實(shí)現(xiàn)吧(通過(guò)聚合數(shù)據(jù)平臺(tái)獲取微信新聞)。
1.介紹幾個(gè)組件
1.1 scroll-view 組件
注意:使用豎向滾動(dòng)時(shí),需要給一個(gè)固定高度,通過(guò) WXSS 設(shè)置 height。
1.2 image組件
注意:mode有12種模式,其中3種是縮放模式,9種是裁剪模式。
1.3 Icon組件
iconType: [ ‘success', ‘info', ‘warn', ‘waiting', ‘safe_success', ‘safe_warn', ‘success_circle', ‘success_no_circle', ‘waiting_circle', ‘circle', ‘download', ‘info_circle', ‘cancel', ‘search', ‘clear' ]
2.列表的上拉加載和下拉刷新的實(shí)現(xiàn)
2.1先來(lái)張效果圖
2.2邏輯很簡(jiǎn)單,直接上代碼
2.2.1 detail.wxml 布局文件
<loading hidden="{{hidden}}" bindchange="loadingChange"> 加載中... </loading> <scroll-view scroll-y="true" style="height: 100%;" bindscrolltolower="loadMore" bindscrolltoupper="refesh"> <view wx:if="{{hasRefesh}}" style="display: flex;flex-direction: row;align-items: center;align-self: center;justify-content: center;"> <icon type="waiting" size="45"/><text>刷新中...</text></view> <view wx:else style="display:none" ><text></text></view> <view class="lll" wx:for="{{list}}" wx:for-item="item" bindtap="bindViewTap" data-title="{{item.title}}" > <image style=" width: 50px;height: 50px;margin: 20rpx;" src="{{item.firstImg}}" ></image> <view class="eee" > <view style="margin:5px;font-size:8px"> 標(biāo)題:{{item.title}}</view> <view style="margin:5px;color:red;font-size:6px"> 來(lái)源:{{item.source}}</view> </view> </view> <view class="tips1"> <view wx:if="{{hasMore}}" style="display: flex;flex-direction: row;align-items: center;align-self: center;justify-content: center;"> <icon type="waiting" size="45"/><text>玩命的加載中...</text></view> <view wx:else><text>沒(méi)有更多內(nèi)容了</text></view> </view> </scroll-view>
2.2.1 detail.js邏輯代碼文件
var network_util = require('../../utils/network_util.js'); var json_util = require('../../utils/json_util.js'); Page({ data:{ // text:"這是一個(gè)頁(yè)面" list:[], dd:'', hidden:false, page: 1, size: 20, hasMore:true, hasRefesh:false }, onLoad:function(options){ var that = this; var url = 'http://v.juhe.cn/weixin/query?key=f16af393a63364b729fd81ed9fdd4b7d&pno=1&ps=10'; network_util._get(url, function(res){ that.setData({ list:res.data.result.list, hidden: true, }); },function(res){ console.log(res); }); }, onReady:function(){ // 頁(yè)面渲染完成 }, onShow:function(){ // 頁(yè)面顯示 }, onHide:function(){ // 頁(yè)面隱藏 }, onUnload:function(){ // 頁(yè)面關(guān)閉 }, //點(diǎn)擊事件處理 bindViewTap: function(e) { console.log(e.currentTarget.dataset.title); }, //加載更多 loadMore: function(e) { var that = this; that.setData({ hasRefesh:true,}); if (!this.data.hasMore) return var url = 'http://v.juhe.cn/weixin/query?key=f16af393a63364b729fd81ed9fdd4b7d&pno='+(++that.data.page)+'&ps=10'; network_util._get(url, function(res){ that.setData({ list: that.data.list.concat(res.data.result.list), hidden: true, hasRefesh:false, }); },function(res){ console.log(res); }) }, //刷新處理 refesh: function(e) { var that = this; that.setData({ hasRefesh:true, }); var url = 'http://v.juhe.cn/weixin/query?key=f16af393a63364b729fd81ed9fdd4b7d&pno=1&ps=10'; network_util._get(url, function(res){ that.setData({ list:res.data.result.list, hidden: true, page:1, hasRefesh:false, }); },function(res){ console.log(res); }) }, })
最后的效果:
關(guān)于新聞的詳情實(shí)現(xiàn),后面在實(shí)現(xiàn)
代碼地址:http://xiazai.jb51.net/201703/yuanma/WeiXinProject-master_jb51.rar
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
如何用JavaScript實(shí)現(xiàn)功能齊全的單鏈表詳解
這篇文章主要給大家介紹了關(guān)于如何用JavaScript實(shí)現(xiàn)功能齊全的單鏈表的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02a標(biāo)簽置灰不可點(diǎn)擊的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇a標(biāo)簽置灰不可點(diǎn)擊的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02前端如何利用CryptoJS實(shí)現(xiàn)數(shù)據(jù)信息的加密詳解
這篇文章主要給大家介紹了關(guān)于前端如何利用CryptoJS實(shí)現(xiàn)數(shù)據(jù)信息加密的相關(guān)資料,前端解密解密工具Cryptojs提供了前端加密解密的工作,包括常用的MD5、BASE64、SHA1、AES等加密解密方法,需要的朋友可以參考下2023-11-11JS幾個(gè)常用的函數(shù)和對(duì)象定義與用法示例
這篇文章主要介紹了JS幾個(gè)常用的函數(shù)和對(duì)象定義與用法,涉及JavaScript日期時(shí)間、數(shù)值計(jì)算及變量判斷等相關(guān)操作技巧,需要的朋友可以參考下2020-01-01JS實(shí)現(xiàn)彈出下載對(duì)話框及常見(jiàn)文件類型的下載
JS要實(shí)現(xiàn)下載功能,一般都是這么幾個(gè)過(guò)程:生成下載的URL,動(dòng)態(tài)創(chuàng)建一個(gè)A標(biāo)簽,并將其href指向生成的URL,然后觸發(fā)A標(biāo)簽的單擊事件,這樣就會(huì)彈出下載對(duì)話框,從而實(shí)現(xiàn)了一個(gè)下載的功能2017-07-07js實(shí)現(xiàn)適合新聞?lì)悎D片的輪播效果
本文主要分享了js實(shí)現(xiàn)適合新聞?lì)悎D片輪播效果的示例代碼,具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02