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

微信小程序?qū)崿F(xiàn)頁面下拉刷新和上拉加載功能詳解

 更新時間:2018年12月03日 12:07:44   作者:kerryqpw  
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)頁面下拉刷新和上拉加載功能,結(jié)合實例形式分析了微信小程序頁面下拉刷新和上拉加載相關(guān)事件監(jiān)聽與功能實現(xiàn)操作技巧,需要的朋友可以參考下

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

web手機端或App中經(jīng)常會有下拉刷新,上拉加載這些功能。

微信小程序中如何實現(xiàn)下拉刷新,上拉加載的功能。

實現(xiàn)思路:

1.監(jiān)聽界面的下拉刷新事件和上拉加載事件

  • bindscrolltolower 監(jiān)聽上拉加載
  • bindscrolltoupper 監(jiān)聽下拉刷新

2.下拉刷新時清空數(shù)據(jù)列表,并重新請求數(shù)據(jù)進(jìn)行界面展示。

3.上拉加載增量請求數(shù)據(jù),增量增加數(shù)據(jù)列表,增量界面展示

效果圖:

實現(xiàn)代碼:

WaterFall.wxml:

<!--pages/WaterFall/WaterFall.wxml-->
<view style="display:none">
 <image wx:for="{{images}}" wx:key="id" id="{{item.id}}" src="{{item.pic}}" bindload="onImageLoad"></image>
</view>
<scroll-view scroll-y="true" style="height:{{scrollH}}px" bindscrolltolower="loadImages" bindscrolltoupper="PullDownRefresh">
 <view style="width:100%">
  <view class="img_item">
   <view wx:for="{{col1}}" wx:key="id">
    <image src="{{item.pic}}" style="width:100%;height:{{item.height}}px"></image>
   </view>
  </view>
  <view class="img_item">
   <view wx:for="{{col2}}" wx:key="id">
    <image src="{{item.pic}}" style="width:100%;height:{{item.height}}px"></image>
   </view>
  </view>
 </view>
</scroll-view>

WaterFall.js:

let col1H = 0;
let col2H = 0;
Page({
 data: {
  scrollH: 0,
  imgWidth: 0,
  loadingCount: 0,
  images: [],
  col1: [],
  col2: []
 },
 onLoad: function () {
  wx.getSystemInfo({
   success: (res) => {
    let ww = res.windowWidth;
    let wh = res.windowHeight;
    let imgWidth = ww * 0.48;
    let scrollH = wh;
    this.setData({
     scrollH: scrollH,
     imgWidth: imgWidth
    });
    //加載首組圖片
    this.loadImages();
   }
  })
 },
 PullDownRefresh:function(){
  console.log("頁面下拉2");
 },
  onShow: function () {
   console.log("頁面顯示");
 },
 /**
  * 生命周期函數(shù)--監(jiān)聽頁面隱藏
  */
 onHide: function () {
  console.log("頁面隱藏");
 },
 /**
  * 用戶點擊右上角分享
  */
 onShareAppMessage: function () {
  console.log("點擊分享");
 },
 onImageLoad: function (e) {
  let imageId = e.currentTarget.id;
  let oImgW = e.detail.width;     //圖片原始寬度
  let oImgH = e.detail.height;    //圖片原始高度
  let imgWidth = this.data.imgWidth; //圖片設(shè)置的寬度
  let scale = imgWidth / oImgW;    //比例計算
  let imgHeight = oImgH * scale;   //自適應(yīng)高度
  let images = this.data.images;
  let imageObj = null;
  for (let i = 0; i < images.length; i++) {
   let img = images[i];
   if (img.id === imageId) {
    imageObj = img;
    break;
   }
  }
  imageObj.height = imgHeight;
  let loadingCount = this.data.loadingCount - 1;
  let col1 = this.data.col1;
  let col2 = this.data.col2;
  //判斷當(dāng)前圖片添加到左列還是右列
  if (col1H <= col2H) {
   col1H += imgHeight;
   col1.push(imageObj);
  } else {
   col2H += imgHeight;
   col2.push(imageObj);
  }
  let data = {
   loadingCount: loadingCount,
   col1: col1,
   col2: col2
  };
  //當(dāng)前這組圖片已加載完畢,則清空圖片臨時加載區(qū)域的內(nèi)容
  if (!loadingCount) {
   data.images = [];
  }
  this.setData(data);
 },
 loadImages: function () {
  let images = [
   { pic: "../../images/1.png", height: 0 },
   { pic: "../../images/2.png", height: 0 },
   { pic: "../../images/3.png", height: 0 },
   { pic: "../../images/4.png", height: 0 },
   { pic: "../../images/5.png", height: 0 },
   { pic: "../../images/6.png", height: 0 },
   { pic: "../../images/7.png", height: 0 },
   { pic: "../../images/8.png", height: 0 },
   { pic: "../../images/9.png", height: 0 },
   { pic: "../../images/10.png", height: 0 },
   { pic: "../../images/11.png", height: 0 },
   { pic: "../../images/12.png", height: 0 },
   { pic: "../../images/13.png", height: 0 },
   { pic: "../../images/14.png", height: 0 }
  ];
  console.log("dasddasd" + images);
  let baseId = "img-" + (+new Date());
  for (let i = 0; i < images.length; i++) {
   images[i].id = baseId + "-" + i;
  }
  this.setData({
   loadingCount: images.length,
   images: images
  });
 }
})

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

相關(guān)文章

  • 學(xué)習(xí)jQuey中的return false

    學(xué)習(xí)jQuey中的return false

    這篇文章主要介紹了jQuey中的return false作用,以及解決jquery中的return false不起作用的方法,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 將函數(shù)的實際參數(shù)轉(zhuǎn)換成數(shù)組的方法

    將函數(shù)的實際參數(shù)轉(zhuǎn)換成數(shù)組的方法

    實際參數(shù)在函數(shù)中我們可以使用 arguments 對象獲得 (注:形參可通過 arguments.callee 獲得),雖然 arguments 對象與數(shù)組形似,但仍不是真正意義上的數(shù)組。
    2010-01-01
  • JS實現(xiàn)兼容各種瀏覽器的高級拖動方法完整實例【測試可用】

    JS實現(xiàn)兼容各種瀏覽器的高級拖動方法完整實例【測試可用】

    這篇文章主要介紹了JS實現(xiàn)兼容各種瀏覽器的高級拖動方法,以完整實例形式分析了JS實現(xiàn)響應(yīng)鼠標(biāo)事件動態(tài)修改頁面元素的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • 解決低版本的瀏覽器不支持es6的import問題

    解決低版本的瀏覽器不支持es6的import問題

    下面小編就為大家分享一篇解決低版本的瀏覽器不支持es6的import問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Javascript中的解構(gòu)賦值語法詳解

    Javascript中的解構(gòu)賦值語法詳解

    這篇文章主要給大家介紹了關(guān)于Javascript中解構(gòu)賦值語法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 利用JavaScript實現(xiàn)檢測用戶是否在線功能

    利用JavaScript實現(xiàn)檢測用戶是否在線功能

    這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript實現(xiàn)檢測用戶是否在線功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-12-12
  • 微信小程序?qū)崿F(xiàn)星星評分效果

    微信小程序?qū)崿F(xiàn)星星評分效果

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)星星評分效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • JavaScript手寫九宮格抽獎demo

    JavaScript手寫九宮格抽獎demo

    這篇文章主要為大家介紹了JavaScript 手寫九宮格抽獎demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • 七個很有意思的PHP函數(shù)

    七個很有意思的PHP函數(shù)

    這篇文章主要介紹了七個很有意思的PHP函數(shù),這些函數(shù)鮮為人知,但很實用,需要的朋友可以參考下
    2014-05-05
  • Bootstrap CSS組件之導(dǎo)航(nav)

    Bootstrap CSS組件之導(dǎo)航(nav)

    這篇文章主要為大家詳細(xì)介紹了Bootstrap CSS組件之導(dǎo)航(nav),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12

最新評論

昌平区| 林周县| 扎赉特旗| 曲麻莱县| 万年县| 西吉县| 淄博市| 无棣县| 绥滨县| 彩票| 博兴县| 东明县| 阿合奇县| 孟州市| 原阳县| 商河县| 黄浦区| 宕昌县| 南京市| 南投县| 开封市| 潼南县| 张家口市| 论坛| 驻马店市| 类乌齐县| 东乌| 奉节县| 邵东县| 中山市| 方城县| 无棣县| 托里县| 衡阳市| 滕州市| 大化| 广宁县| 万宁市| 灵璧县| 报价| 江城|