• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 浅谈小程序中下拉刷新和上拉加载功能怎么实现?(附代码)

浅谈小程序中下拉刷新和上拉加载功能怎么实现?(附代码)

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了小程序下拉刷新,小程序上拉加载功能,小程序代码等相关知识,希望对您有所帮助

本篇文章给大家介绍一下小程序中实现下拉刷新和上拉加载功能的方法,希望对大家有所帮助!


浅谈小程序中下拉刷新和上拉加载功能怎么实现?(附代码)


在进行列表数据展示的时候,如果数据比较多或者更新比较快,就需要提供上拉刷新和下拉加载的功能,让提升用户的体验。

下拉刷新及上拉加载wxml文件编写

当我们使用scroll-view滑动组件展示列表时,其本身就存在下拉刷新和上拉加载的触发函数

<scroll-view class="scroll" scroll-y="{{true}}" upper-threshold="50" bindscrolltoupper="refresh"  style="height:700px"><l-loadmore show="{{upfresh}}" bindscrolltolower="getMore"  type="loading" loading-text="拼命刷新中"></l-loadmore> <l-loadmore show="{{downfresh}}" type="loading" loading-text="拼命加载中"></l-loadmore>

scroll-y: 是否允许纵向滚动,默认为false,这里我们设置为true

upper-threshold: 距顶部/左边多远时,触发 scrolltoupper 事件(下拉刷新)

bindscrolltoupper:滚动到顶部/左边时触发,这里设置滚动到顶部需要触发的函数

bindscrolltolower:滚动到顶部/右边时触发


引入line-ui框架

这里我使用的下拉刷新和上拉加载展示组件是lin-ui框架提供的,这里我说下如何引入lin-ui框架:lin-ui官方文档地址

//在小程序项目目录中执行下面的函数npm install lin-ui

然后在需要引入组件的页面的json文件中进行引入

"usingComponents": {    "l-loadmore":"/miniprogram_npm/lin-ui/loadmore/index",    "l-loading":"/miniprogram_npm/lin-ui/loading/index",},

这样lin-ui组件就引入成功了


js代码编写

data: {    downfresh:false,//底部加载展示控制    upfresh:false//顶部加载展示控制},

首先在data中设置加载组件是否显示,默认都不显示


下拉刷新js代码

//下拉刷新refresh(){    if(this.data.upfresh){        console.log("还没刷新完成")        return;    }    var that = this;    this.setData({        upfresh: true,        // upfresh:false    })        setTimeout(function() {        //updateData为自己的数据更新逻辑代码        that.updateData(true,()=>{            that.setData({                upfresh: false,            });        })        // wx.hideLoading();        console.info('下拉刷新加载完成.');    }, 500);},     //更新数据   updateData:function(tail, callback) {       var that = this;    console.log("updatedata-=-=seea"+that.data.searchValue)    wx.request({        url: app.gBaseUrl + 'compony-detail/page',        method: 'GET',        data: {            page: 0,            count: 20,            componyname:that.data.searchValue        },        success: (res) => {            this.setData({                componys: res.data            })            if (callback) {                callback();            }        }    })},


上拉加载js代码

/** * 滑动到底部加载更多 */getMore(){    // downloadingData=this.data.downloadingData    if(this.data.downfresh){        console.log("还没加载完成")        return;    }    var that = this;    this.setData({        downfresh: true,        // upfresh:false    })       this.setData({        downloadingData: true        // upfresh:false    })     setTimeout(function() {        that.loadData(true,()=>{            that.setData({                downfresh: false            });        })        // wx.hideLoading();        console.info('上拉数据加载完成.');     }, 1000); },    loadData: function(tail, callback) {    var that = this;    wx.request({        url: app.gBaseUrl + 'compony-detail/page',        method: 'GET',        data: {            page: that.data.componys.length,            count: 20,            componyname:that.data.searchValue        },        success: (res) => {            // console.log(JSON.stringify(res.data))            that.setData({                componys: that.data.componys.concat(res.data),            });            if (callback) {                callback();            }        }    })},

整个下拉刷新和上拉加载的功能我们就已经实现了,主要就是利用到了scroll-view的组件特性,根据触发的时机来控制记载组件的显隐,整体实现并不是很难,具体代码可根据自己的实际情况做适当调整哦。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 浅谈小程序中下拉刷新和上拉加载功能怎么实现?(附代码)
  • 浅谈小程序中实现下拉刷新与加载更多效果的方法

相关文章

  • 2022-04-29Thinkphp中import的用法是什么
  • 2022-04-29Node.js深入学习之浅析require函数中怎么添加钩子
  • 2022-04-29Illustrator绘制卡通立体效果的小熊图标
  • 2022-04-29PHP使用PHPAnalysis提取关键字中文分词的方法是什么
  • 2022-04-29Photoshop制作燃烧效果的岩石字
  • 2022-04-29CentOS7挂载新的数据盘
  • 2022-04-29飞飞CMS后台密码是什么?忘记了怎么办?
  • 2022-04-29Photoshop制作非常简洁的灰色质感导航栏
  • 2022-04-29Flex中对表格中某列的值进行数字格式化保留两位小数
  • 2022-04-29使用CorelDRAW绘制椭圆和圆形

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 关于ThinkPHP6多例Redis类实现
    • 简单对比Node中的setHeader和writeHead,聊聊差异
    • Thinkphp中如何按照周来实现将数据分类
    • Laravel怎么判断是否登录
    • wordpress优化:纯代码禁止文章自动保存及修订版本的方法
    • CSS3怎么实现动画结束不消失效果
    • PHP开发支付宝PC扫码支付/支付宝当面付开发流程
    • Photoshop制作绚丽的万花筒背景教程
    • 关于 Laravel 项目 伪静态分页处理
    • Phpcms V9导航循环下拉菜单实例文件分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有