国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 12:25:20
字體:
供稿:網(wǎng)友

本文實例講述了微信小程序?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ù)進行界面展示。

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è)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 民乐县| 尼木县| 宜兴市| 维西| 鹤峰县| 佛坪县| 泽普县| 乡城县| 奉节县| 江陵县| 宁波市| 称多县| 贵德县| 淄博市| 九龙县| 宁阳县| 迭部县| 拜泉县| 宜章县| 林芝县| 五家渠市| 喀喇沁旗| 城口县| 寻乌县| 洛宁县| 桂阳县| 濉溪县| 唐河县| 庆元县| 尚志市| 鞍山市| 和龙市| 抚顺县| 泽普县| 新乡县| 丘北县| 婺源县| 安龙县| 沭阳县| 贵溪市| 尉氏县|