最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序列表渲染功能之列表下拉刷新及上拉加載的實現(xiàn)方法分析

 更新時間:2017年11月27日 10:12:00   作者:晚秋星辰  
這篇文章主要介紹了微信小程序列表渲染功能之列表下拉刷新及上拉加載的實現(xiàn)方法,結(jié)合實例形式分析了微信小程序列表下拉刷新及上拉加載的相關(guān)實現(xiàn)方法與技巧操作,需要的朋友可以參考下

本文實例講述了微信小程序列表渲染功能之列表下拉刷新及上拉加載的實現(xiàn)方法。分享給大家供大家參考,具體如下:

微信小程序為2017年1月9日打下了一個特殊的標(biāo)簽,迅速刷爆了網(wǎng)絡(luò)和朋友圈,最近我也寫了一個demo程序體驗一把。微信小程序和vuejs有些像,都是數(shù)據(jù)驅(qū)動視圖&單向數(shù)據(jù)綁定,而其體驗要比H5頁面好很多,這得益于微信環(huán)境的支持以及首次運行時同時加載所有頁面的處理。本文將分享微信小程序列表的下拉刷新和上劃加載的實踐。

效果圖

首先來看看程序效果圖,以下四張圖從左至右依次是:下來刷新動畫、下拉刷新結(jié)果、上劃加載動畫以及上劃加載結(jié)果,程序中的數(shù)據(jù)均為模擬數(shù)據(jù),不包含網(wǎng)絡(luò)請求,所以可以直接運行。

方法一:用scroll-view組件實現(xiàn)

由于最后沒有選擇這種實現(xiàn)方法(下拉刷新有bug),因此只做簡單介紹,當(dāng)然如果沒有下拉刷新的需求,scroll-view組件實現(xiàn)列表的渲染很方便,從官方文檔可以看到,scroll-view組件集成了以下方法為編程提供很大便捷。

scroll-into-view String 值應(yīng)為某子元素id,則滾動到該元素,元素頂部對齊滾動區(qū)域頂部
bindscrolltoupper EventHandle 滾動到頂部/左邊,會觸發(fā) scrolltoupper 事件
bindscrolltolower EventHandle 滾動到底部/右邊,會觸發(fā) scrolltolower 事件
bindscroll EventHandle 滾動時觸發(fā) event.detail = {scrollLeft, scrollTop, scrollHeight, scrollWidth, deltaX, deltaY}

方法二:用page頁面自帶的功能

Page() 函數(shù)用來注冊一個頁面。接受一個 object 參數(shù),其指定頁面的初始數(shù)據(jù)、生命周期函數(shù)、事件處理函數(shù)等。

1、在app.json頁設(shè)置窗口前景色為dark & 允許下拉

"window":{
  "backgroundTextStyle":"dark",
  "navigationBarBackgroundColor": "#000",
  "navigationBarTitleText": "wechat",
  "navigationBarTextStyle":"white",
  "enablePullDownRefresh": true
}

2、在list.json頁設(shè)置允許下拉

{
  "enablePullDownRefresh": true
}

3、利用onPullDownRefresh監(jiān)聽用戶下拉動作

注:在滾動 scroll-view 時會阻止頁面回彈,所以在 scroll-view 中滾動無法觸發(fā)onPullDownRefresh,因此在使用 scroll-view 組件時無法利用page的該特性。

onPullDownRefresh: function() {
 wx.showNavigationBarLoading() //在標(biāo)題欄中顯示加載
 let newwords = [{message: '從天而降',viewid:'-1',time:util.formatTime(new Date),greeting:'hello'}].concat(this.data.words);
 setTimeout( ()=> {
   this.setData({
     words: newwords
   })
   wx.hideNavigationBarLoading() //完成停止加載
   wx.stopPullDownRefresh() //停止下拉刷新
  }, 2000)
}

4、利用onReachBottom頁面上拉觸底事件

注:,首次進(jìn)入頁面,如果頁面不滿一屏?xí)r會觸發(fā) onReachBottom ,應(yīng)為只有用戶主動上拉才觸發(fā);手指上拉,會觸發(fā)多次 onReachBottom,應(yīng)為一次上拉,只觸發(fā)一次;所以在編程時需要將這兩點考慮在內(nèi)。

onReachBottom:function(){
  console.log('hi')
  if (this.data.loading) return;
  this.setData({ loading: true });
  updateRefreshIcon.call(this);
  var words = this.data.words.concat([{message: '土生土長',viewid:'0',time:util.formatTime(new Date),greeting:'hello'}]);
  setTimeout( () =>{
    this.setData({
     loading: false,
     words: words
    })
  }, 2000)
 }
})

5、上劃加載圖標(biāo)動畫

/**
 * 旋轉(zhuǎn)刷新圖標(biāo)
 */
function updateRefreshIcon() {
 var deg = 0;
 console.log('旋轉(zhuǎn)開始了.....')
 var animation = wx.createAnimation({
  duration: 1000
 });
 var timer = setInterval( ()=> {
  if (!this.data.loading)
   clearInterval(timer);
  animation.rotateZ(deg).step();//在Z軸旋轉(zhuǎn)一個deg角度
  deg += 360;
  this.setData({
   refreshAnimation: animation.export()
  })
 }, 2000);
}

最后附上布局代碼:

<view wx:for="{{words}}" class="item-container">
  <view class="items">
    <view class="left">
       <view class="msg">{{item.message}}</view>
       <view class="time">{{item.time}}</view>
    </view>
    <view class="right">{{item.greeting}}</view>
  </view>
</view>
<view class="refresh-block" wx:if="{{loading}}">
 <image animation="{{refreshAnimation}}" src="../../resources/refresh.png"></image>
</view>

希望本文所述對大家微信小程序設(shè)計有所幫助。

相關(guān)文章

  • javascript動態(tài)向網(wǎng)頁中添加表格實現(xiàn)代碼

    javascript動態(tài)向網(wǎng)頁中添加表格實現(xiàn)代碼

    動態(tài)向網(wǎng)頁中添加表格的方法有很多,本文為大家介紹下利用javascript是如何實現(xiàn)的
    2014-02-02
  • JavaScript如何刪除字符串中子字符串

    JavaScript如何刪除字符串中子字符串

    本文介紹了如何從?JavaScript?中的字符串中刪除子字符串,并提供了兩種常用的方法:replace()?方法和?split()?方法,結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2023-05-05
  • 小程序紅包雨的實現(xiàn)示例

    小程序紅包雨的實現(xiàn)示例

    這篇文章主要介紹了小程序紅包雨的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • javascript實現(xiàn)信息增刪改查的方法

    javascript實現(xiàn)信息增刪改查的方法

    這篇文章主要介紹了javascript實現(xiàn)信息增刪改查的方法,實例分析了javascript操作頁面元素實現(xiàn)針對頁面信息的增刪改查功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • 微信小程序如何獲取用戶手機(jī)號

    微信小程序如何獲取用戶手機(jī)號

    這篇文章主要為大家詳細(xì)介紹了微信小程序如何獲取用戶手機(jī)號,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Java?Script網(wǎng)頁設(shè)計案例詳解

    Java?Script網(wǎng)頁設(shè)計案例詳解

    下面我將提供一個簡單的JavaScript網(wǎng)頁設(shè)計案例,該案例將實現(xiàn)一個動態(tài)的待辦事項列表(Todo List),用戶可以在頁面上添加新的待辦事項,標(biāo)記它們?yōu)橐淹瓿?以及刪除它們,這篇文章主要介紹了Java?Script網(wǎng)頁設(shè)計案例,需要的朋友可以參考下
    2024-08-08
  • 微信小程序獲取當(dāng)前時間及星期幾的實例代碼

    微信小程序獲取當(dāng)前時間及星期幾的實例代碼

    這篇文章主要給大家介紹了關(guān)于利用微信小程序獲取當(dāng)前時間及星期幾的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 基于JavaScript實現(xiàn)選項卡效果

    基于JavaScript實現(xiàn)選項卡效果

    這篇文章主要為大家詳細(xì)介紹了基于JavaScript實現(xiàn)選項卡效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • javascript跨域刷新實現(xiàn)代碼

    javascript跨域刷新實現(xiàn)代碼

    在XX項目里面需要通過一個iframe去刷新同一窗口的另外一個iframe。一個超級簡單的處理,但我還在blog上記一記,有些看似簡單的東西,在真實項目應(yīng)用中還是值得思考地方
    2011-01-01
  • JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之二叉樹添加/刪除節(jié)點操作示例

    JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之二叉樹添加/刪除節(jié)點操作示例

    這篇文章主要介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之二叉樹添加/刪除節(jié)點操作,涉及javascript二叉樹的定義、節(jié)點添加、刪除、遍歷等相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03

最新評論

小金县| 永吉县| 太和县| 岗巴县| 营山县| 彩票| 彭水| 新干县| 禄劝| 巨鹿县| 庆安县| 仙游县| 名山县| 南乐县| 东兰县| 定边县| 榕江县| 千阳县| 泸定县| 苍梧县| 浏阳市| 大连市| 喀什市| 晴隆县| 西峡县| 攀枝花市| 墨竹工卡县| 十堰市| 边坝县| 项城市| 密云县| 古丈县| 兰溪市| 长治市| 颍上县| 平江县| 德惠市| 张家川| 中江县| 遂昌县| 偏关县|