【微信小程序开发】小程序中的上滑加载更多,下拉刷新的实现

40 篇文章 2 订阅
3 篇文章 0 订阅

1.上滑加载更多

js代码

Page({

  data: {
    good_list: [1, 2, 3]
  },
  // 当滑动到底部还有100rpx时,就会触发这个函数执行---》发送请求获取数据
  onReachBottom() {
    console.log('上拉了')
    // 发送请求获取数据
    wx.request({
      url: 'http://127.0.0.1:8000/app01/random/',
      method:'GET',
      success:(res)=>{
          this.setData({
            good_list:this.data.good_list.concat(res.data)
          })
      }
    })
  },
})

###wxml####

<view wx:for="{{good_list}}" wx:key="*this">{{item}}</view>

###wxss###

view{
  height: 400rpx;
  display: flex;
  justify-content: center;
  align-items: center;

}

/* 奇数背景色是粉色 */
view:nth-child(odd){
  background-color: pink;
}


/* 偶数背景色绿色 */
view:nth-child(even){
  background-color: rgb(17, 133, 88);
}

要实现,往上拉,拉到最底部时,显示更多的数字,需要在goods.json文件中配置onReachBottomDistance

###json###

{
  "usingComponents": {},
  "onReachBottomDistance": 100
}

onReachBottomDistance的意思是,当拉到距离底部距离多少rpx时开始触发加载更多

滑动加载数据,在js代码中是固定的函数名 onReachBottom

      // 当滑动到底部还有100rpx时,就会触发这个函数执行---》发送请求获取数据
  onReachBottom() {
    console.log('下拉了')
    // 发送请求获取数据
    wx.request({
      url: 'http://127.0.0.1:8000/random',
      method:'GET',
      success:(res)=>{
          this.setData({
            good_list:this.data.good_list.concat(res.data)
          })
      }
    })
  },

小程序上拉,显示更多数据

2.下拉刷新

###json中配置###

{
  "usingComponents": {},
  "onReachBottomDistance": 100,
  "enablePullDownRefresh": true,
  "backgroundColor": "#efefef",
  "backgroundTextStyle":"dark"
}

###wxml ###

<view wx:for="{{good_list}}" wx:key="*this">{{item}}</view>

###js ###

// 下拉刷新-
onPullDownRefresh(){
    console.log('下拉了,刷新')
    // 只要下来,把数据恢复
    this.setData({
        good_list:[1,2,3]
    })
    // 下拉刷新后,loading效果回弹
    if(this.data.good_list.length==3){
        wx.stopPullDownRefresh()
    }
}

3.scroll-view实现上拉加载更多,下拉刷新

新建个页面

重新建个tarbar

#####wxml####

<scroll-view 
class="scroll"
scroll-y  # 运行y轴滑动
lower-threshold="100" # 距离底部还有100px时,触发事件
bindscrolltolower="handleGetData"# 事件处理函数


refresher-enabled="true"        # 开启 下拉刷新
refresher-default-style="black" # 下拉默认样式
refresher-background="#f0f0f0"  # 下拉背景色
bindrefresherrefresh="handleReload" # 下拉触发事件
refresher-triggered="{{isRefresh}}" # 设置下拉回弹,false允许回弹,

enable-back-to-top="true"  # 快速回到顶部,ios点顶部,安卓点tab
>
  <view wx:for="{{goods}}" wx:key="index">{{item}}</view>
</scroll-view>

###wxss###

.scroll{
  /* 100vh就是指元素的高度等于当前浏览器的视窗高度,即浏览器内部的可视区域的高度大小 */
  height: 100vh; 
  background-color: grey;
}

view{
  height: 400rpx;
  display: flex;
  justify-content: center;
  align-items: center;
}
/* 奇数 */
view:nth-child(odd){
  background-color: pink;
}
/* 偶数 */
view:nth-child(even){
  background-color: green;
}

效果:
下拉刷新

上拉加载更多

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北海屿鹿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值