微信小程序—下拉刷新上拉加载

本文介绍如何在微信小程序中实现下拉刷新和上拉加载功能,包括使用scroll-view组件结合bindscrolltolower和bindscrolltoupper事件实现,以及通过onPullDownRefresh接口实现下拉刷新。

1.使用scroll-view实现下拉刷新上拉加载

<scroll-view scroll-y="true" style="height:{{scrollHeight}}px;" class="list" bindscrolltolower="bindDownLoad"  bindscrolltoupper="refresh">
    <view class="item" wx:for="{{list}}">
      <image class="img" src="{{item.image}}"></image>
      <view class="text">
        <text class="title">{{item.title}}</text>
        <text class="description">{{item.pubdate}}"</text>
      </view>
    </view>
  </scroll-view>

先写一个布局 类似于android 的listview item的布局 外边用scroll-view包裹。item布局样式用css去实现。
scroll-view 熟悉介绍 参考官方文档 这里写链接内容

注意:使用竖向滚动时,需要给一个固定高度,通过 WXSS 设置 height。设定高度才能监听到 滑动事件。
通过bindscrolltolower=”bindDownLoad” bindscrolltoupper=”refresh”实现下拉刷新和上拉加载。

高度的获得

onLoad: function () {
    //   这里要非常注意,微信的scroll-view必须要设置高度才能监听滚动事件,所以,需要在页面的onLoad事件中给scroll-view的高度赋值
    var that = this;
    wx.getSystemInfo({
      success: function (res) {
        console.info(res.windowHeight);
        that.setData({
          scrollHeight: res.windowHeight
        });
      }
    });
  },

或者在onshow方法中

2.通过 onPullDownRefresh实现

注意:onPullDownRefresh和scroll-view不能同时使用

  1. 需要在 .json 文件中配置。(.json 文件的格式和 app.json与具体页面的.json文件的区别,前文已经讲过,有疑问的可以移步。) 如果配置在app.json文件中,那么整个程序都可以下拉刷新。如果写在具体页面的.json文件中,那么就是对应的页面,可以下拉刷新。

具体页面的.json文件:

{
    "enablePullDownRefresh": true
}

app.json文件:

"window": {
    "enablePullDownRefresh": true
  }
  1. 在js文件中添加回调函数
// 下拉刷新回调接口
    onPullDownRefresh: function () {
        // do somthing
    },

3 .上拉加载

同下拉刷新一样,小程序中也提供了用于上拉时回调的接口。官方文档中并没有很详细的介绍,经测试发现,上拉回调的接口并不需要额外的配置(下拉时需要在 .json文件中配置 “enablePullDownRefresh”: true),直接在页面滑动到底部时就能拿到回调。

  1. 在js文件中添加回调函数
// 上拉加载回调接口
    onReachBottom: function () {
    },
var items = that.data.list.concat(res.data.books);
      that.setData({
        list: items,
      });

通过concat方法进行数组的连接,实现上拉更多。

隐藏scroll-view滚动条

在相应的css文件中加入一下代码

::-webkit-scrollbar {
  width: 0;
  height: 0;
  color: transparent;
}
### 微信小程序实现下拉刷新上拉加载更多 #### 下拉刷新功能 在微信小程序中,下拉刷新主要用于更新页面顶部的内容。当用户执行下拉操作时,可以触发特定事件来重新获取数据并更新界面。 ```javascript Page({ data: { good_list: [] }, onPullDownRefresh() { console.log('正在下拉刷新...'); // 模拟网络请求,重置商品列表数据 setTimeout(() => { const newData = [1, 2, 3]; // 新的数据源 this.setData({ good_list: newData, }); // 停止下拉刷新动画 wx.stopPullDownRefresh(); }, 1000); } }) ``` 此代码片段展示了如何通过`onPullDownRefresh()`方法监听用户的下拉动作,并调用`wx.stopPullDownRefresh()`停止刷新动画[^1]。 #### 上拉加载更多功能 对于上拉加载更多的需求,则是在滚动到底部时自动追加新内容到现有列表之中。这同样依赖于微信小程序内置的方法来进行处理: ```javascript Page({ onLoad:function(){ this.loadMoreData(); // 初始加载部分数据 }, loadMoreData(){ let that = this; // 这里模拟异步加载过程 setTimeout(function () { var oldList = that.data.good_list || []; var newList = [...oldList,...[7,8,9]]; // 添加新的项目至旧数组后面 that.setData({good_list:newList}); },500); }, onReachBottom(){ console.log("触底了"); this.loadMoreData(); // 加载更多数据 } }) ``` 上述例子说明了怎样利用`onReachBottom()`函数检测到达页面底部的情况,并据此调用自定义的`loadMoreData()`逻辑去增加额外的商品条目[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值