您好,登錄后才能下訂單哦!
這篇文章主要介紹了小程序怎樣實現自定義下拉刷新,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
自定義組件:
js:
// components/test/test.js Component({ /** * 組件的屬性列表 */ properties: { }, /** * 組件的初始數據 */ data: { scrollHeight: 0, startY: 0, tips: '下拉刷新', isRefreshing: false }, /** * 組件的方法列表 */ methods: { end: function(e) { if (this.data.isRefreshing) { return } if (this.data.scrollHeight >= 50) { this.setData({ scrollHeight: 50, tips: '正在刷新', isRefreshing: true }) this.triggerEvent('onRefresh') } else { this.setData({ scrollHeight: 0, tips: '下拉刷新' }) } }, move: function(e) { if (this.data.isRefreshing) { return } var that = this; var moveY = e.touches[0].pageY; var dY = moveY - that.data.startY; console.log(dY); if (dY >= 50 && dY <= 80) { this.setData({ tips: '松開加載', scrollHeight: dY }) } else if (dY > 80) { this.setData({ tips: '松開加載', scrollHeight: 80 }) } else { this.setData({ tips: '下拉刷新', scrollHeight: dY }) } }, start: function(e) { this.data.startY = e.touches[0].pageY; }, stopRefresh: function() { this.setData({ isRefreshing: false, scrollHeight: -50 }) }, } })
wxml:
<!--components/test/test.wxml--> <view class='loading-container' bindtouchend='end' bindtouchmove='move' bindtouchstart='start' style='margin-top:{{scrollHeight}}px;transform:translateY(-50px);' > <view class="weui-loadmore" style='margin:0 auto;padding:1.5em 0;'> <view class="weui-loading"></view> <view class="weui-loadmore__tips">{{tips}}</view> </view> </view>
wxss:其中引用了weui 這個用不用都無所謂的很簡單的
@import '/pages/common/weui.wxss'; page{ height: 100%; } .loading-container{ height: 100%; }
pages里wxml:
<loadmore style='height:100%;' bindonRefresh='onRefresh' id='loadmore'></loadmore>
js://刷新方法回調
onRefresh: function() { var that = this; setTimeout(function(){ that.selectComponent("#loadmore").stopRefresh(); },3000) }, json: { "enablePullDownRefresh": false, "usingComponents":{ "loadmore":"../../components/test/test" } }
感謝你能夠認真閱讀完這篇文章,希望小編分享小程序怎樣實現自定義下拉刷新內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。