全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

微信小程序 详解下拉加载与上拉刷新实现方法

微信小程序下拉刷新上拉加载的两种实现方法

实现效果图:

方法一:onPullDownRefresh和onReachBottom方法实现小程序下拉加载和上拉刷新

首先要在json文件里设置window属性

            属性   类型                           描述
enablePullDownRefresh Boolean 是否开启下拉刷新,详见页面相关事件处理函数。

设置js里onPullDownRefresh和onReachBottom方法

    属性    类型          描述
onPullDownRefresh function 页面相关事件处理函数——监听用户下拉动作
onReachBottom function 页面上拉触发底事件的处理函数

下拉加载说明:

当处理完数据刷新后,wx.stopPullDownRefresh可以停止当前页面的下拉刷新。

onPullDownRefresh(){
  console.log('--------下拉刷新-------')
  wx.showNavigationBarLoading() //在标题栏中显示加载
 
  wx.request({
     url: 'https://URL',
     data: {},
     method: 'GET',
     // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
     // header: {}, // 设置请求的 header
     success: function(res){
      // success
     },
     fail: function() {
      // fail
     },
     complete: function() {
      // complete
      wx.hideNavigationBarLoading() //完成停止加载
      wx.stopPullDownRefresh() //停止下拉刷新
     }
  })       

方法二:

在scroll-view里设定bindscrolltoupper和bindscrolltolower实现微信小程序下拉

    属性    类型          描述
bindscrolltoupper EventHandle 滚动到顶部/左边,会触发 scrolltoupper 事件
bindscrolltolower EventHandle

滚动到底部/右边,会触发 scrolltolower 事件

index.wxml

<!--index.wxml-->
<view class="container" style="padding:0rpx">
 <!--垂直滚动,这里必须设置高度-->
  <scroll-view scroll-top="{{scrollTop}}" scroll-y="true" style="height:{{scrollHeight}}px;" 
    class="list" bindscrolltolower="bindDownLoad" bindscrolltoupper="topLoad" bindscroll="scroll">
    <view class="item" wx:for="{{list}}">
      <image class="img" src="{{item.pic_url}}"></image>
      <view class="text">
        <text class="title">{{item.name}}</text>
        <text class="description">{{item.short_description}}</text>
      </view>
    </view>
  </scroll-view>
  <view class="body-view">
    <loading hidden="{{hidden}}" bindchange="loadingChange">
      加载中...
    </loading>
  </view>
</view>

index.js

var url = "http://www.imooc.com/course/ajaxlist";
var page =0;
var page_size = 5;
var sort = "last";
var is_easy = 0;
var lange_id = 0;
var pos_id = 0;
var unlearn = 0;


// 请求数据
var loadMore = function(that){
  that.setData({
    hidden:false
  });
  wx.request({
    url:url,
    data:{
      page : page,
      page_size : page_size,
      sort : sort,
      is_easy : is_easy,
      lange_id : lange_id,
      pos_id : pos_id,
      unlearn : unlearn
    },
    success:function(res){
      //console.info(that.data.list);
      var list = that.data.list;
      for(var i = 0; i < res.data.list.length; i++){
        list.push(res.data.list[i]);
      }
      that.setData({
        list : list
      });
      page ++;
      that.setData({
        hidden:true
      });
    }
  });
}
Page({
 data:{
  hidden:true,
  list:[],
  scrollTop : 0,
  scrollHeight:0
 },
 onLoad:function(){
  //  这里要注意,微信的scroll-view必须要设置高度才能监听滚动事件,所以,需要在页面的onLoad事件中给scroll-view的高度赋值
   var that = this;
   wx.getSystemInfo({
     success:function(res){
       that.setData({
         scrollHeight:res.windowHeight
       });
     }
   });
    loadMore(that);
 },
 //页面滑动到底部
 bindDownLoad:function(){  
   var that = this;
   loadMore(that);
   console.log("lower");
 },
 scroll:function(event){
  //该方法绑定了页面滚动时的事件,我这里记录了当前的position.y的值,为了请求数据之后把页面定位到这里来。
   this.setData({
     scrollTop : event.detail.scrollTop
   });
 },
 topLoad:function(event){
  //  该方法绑定了页面滑动到顶部的事件,然后做上拉刷新
   page = 0;
   this.setData({
     list : [],
     scrollTop : 0
   });
   loadMore(this);
   console.log("lower");
 }
})

index.wxss

/**index.wxss**/

.userinfo {
 display: flex;
 flex-direction: column;
 align-items: center;
}

.userinfo-avatar {
 width: 128rpx;
 height: 128rpx;
 margin: 20rpx;
 border-radius: 50%;
}

.userinfo-nickname {
 color: #aaa;
}

.usermotto {
 margin-top: 200px;
}

/**/

scroll-view {
 width: 100%;
}

.item {
 width: 90%;
 height: 300rpx;
 margin: 20rpx auto;
 background: brown;
 overflow: hidden;
}

.item .img {
 width: 430rpx;
 margin-right: 20rpx;
 float: left;
}

.title {
 font-size: 30rpx;
 display: block;
 margin: 30rpx auto;
}

.description {
 font-size: 26rpx;
 line-height: 15rpx;
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# 微信小程序下拉加载  # 上拉刷新  # 上拉刷新几种方法  # 上拉刷新实例详解  # 微信小程序实现触底加载与下拉刷新的示例代码  # 微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】  # 微信小程序 列表的上拉加载和下拉刷新的实现  # 微信小程序下拉加载和上拉刷新两种实现方法详解  # 微信小程序 scroll-view实现上拉加载与下拉刷新的实例  # 微信小程序实现列表下拉刷新上拉加载  # 微信小程序(六):列表上拉加载下拉刷新示例  # 详解微信小程序开发之下拉刷新 上拉加载  # 微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析  # 微信小程序实现触底加载  # 加载  # 定了  # 两种  # 要在  # 要注意  # 希望能  # 谢谢大家  # 栏中  # 加载中  # 必须要  # 事件中  # hideNavigationBarLoading  # scroll  # EventHandle  # bindscrolltoupper  # view  # bindscrolltolower  # complete  # CONNECT  # TRACE 


相关文章: ,在苏州找工作,上哪个网站比较好?  如何在服务器上配置二级域名建站?  MySQL查询结果复制到新表的方法(更新、插入)  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  建站之星如何取消后台验证码生成?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  Python如何创建带属性的XML节点  制作网页的网站有哪些,电脑上怎么做网页?  网站制作公司,橙子建站是合法的吗?  广东企业建站网站优化与SEO营销核心策略指南  PHP 500报错的快速解决方法  如何在Tomcat中配置并部署网站项目?  建站之星安装提示数据库无法连接如何解决?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  ,巨量百应是干嘛的?  ,南京靠谱的征婚网站?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  个人摄影网站制作流程,摄影爱好者都去什么网站?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  如何快速搭建个人网站并优化SEO?  如何用PHP快速搭建CMS系统?  如何通过万网虚拟主机快速搭建网站?  如何通过主机屋免费建站教程十分钟搭建网站?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  广州商城建站系统开发成本与周期如何控制?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  如何制作一个表白网站视频,关于勇敢表白的小标题?  安徽网站建设与外贸建站服务专业定制方案  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  建站之星展会模板:智能建站与自助搭建高效解决方案  香港服务器WordPress建站指南:SEO优化与高效部署策略  定制建站策划方案_专业建站与网站建设方案一站式指南  非常酷的网站设计制作软件,酷培ai教育官方网站?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  如何通过虚拟主机快速完成网站搭建?  济南网站制作的价格,历城一职专官方网站?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  建站之星如何防范黑客攻击与数据泄露?  c# 服务器GC和工作站GC的区别和设置  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  定制建站哪家更专业可靠?推荐榜单揭晓  全景视频制作网站有哪些,全景图怎么做成网页?  如何有效防御Web建站篡改攻击?  山东网站制作公司有哪些,山东大源集团官网?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。