微信小程序实现页面下拉刷新和上拉加载

来源:互联网 发布:高中生学编程 编辑:程序博客网 时间:2024/06/08 20:08

微信小程序实现页面下拉刷新和上拉加载


        web手机端或App中经常会有下拉刷新,上拉加载这些功能。

       微信小程序中如何实现下拉刷新,上拉加载的功能。


       实现思路:

       1.监听界面的下拉刷新事件和上拉加载事件

bindscrolltolower 监听上拉加载
bindscrolltoupper 监听下拉刷新

       2.下拉刷新时清空数据列表,并重新请求数据进行界面展示。

       3.上拉加载增量请求数据,增量增加数据列表,增量界面展示


     效果图:



      实现代码:


     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("页面显示");     },  /**   * 生命周期函数--监听页面隐藏   */  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;  //图片设置的宽度    let scale = imgWidth / oImgW;        //比例计算    let imgHeight = oImgH * scale;      //自适应高度    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;    //判断当前图片添加到左列还是右列    if (col1H <= col2H) {      col1H += imgHeight;      col1.push(imageObj);    } else {      col2H += imgHeight;      col2.push(imageObj);    }    let data = {      loadingCount: loadingCount,      col1: col1,      col2: col2    };    //当前这组图片已加载完毕,则清空图片临时加载区域的内容    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    });  }})





原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 自己车撞自己车怎么办 撞了人没钱赔怎么办 闯红灯扣了6分怎么办 开共享汽车闯红灯了怎么办 新手如果不小心闯红灯怎么办 红绿灯左转车道直行了怎么办 跟着大车后面闯了红灯怎么办 宝宝私处好红怎么办呢 甲亢难怀孕怎么办才好 怀孕8周查出甲亢怎么办 电动车被交警拖走了怎么办 电动车车被城管拖走了怎么办 12123地理反编码失败怎么办 苹果手机地理反编码失败怎么办 城管执法过程被打怎么办 老婆看不起老公不让碰怎么办 老婆总不让碰该怎么办 机动车扣满12分怎么办 吊车吊运货物失控应该怎么办 车辆违章扣6分怎么办 最新交通法扣满12分怎么办 违章停车单丢了怎么办 违停告知单掉了怎么办 违章停车扣3分怎么办 驾驶证被扣12分怎么办 被贴条了条丢了怎么办 车停路边连续几天被贴条怎么办 车停在路边限号怎么办 违停的罚单丢了怎么办 借道左转红灯了 怎么办 道路上有锯齿线标志怎么办 被领导臭骂了一顿怎么办 酒驾撞了人逃跑怎么办处理 荣耀9home键掉了怎么办 今天开车把老太婆撞了怎么办 交通责任认定书不合理怎么办 交通事故救济金用了 没钱还怎么办 车脏了洗不干净怎么办 衣服上贴花掉了怎么办 衣服上的画掉了怎么办 衣服上沾了胶怎么办