下拉刷新

实现下拉刷新目前能想到的有两种方式

  1. 调用系统的API,系统有提供下拉刷新的API接口

    下拉刷新API.png

  2. 监听scroll-view,自定义下拉刷新,还记得scroll-view里面有一个bindscrolltoupper属性吗?忘记请自行回顾上一篇 微信小程序实战篇-电商(二)当滚动到顶部/左边,会触发 scrolltoupper 事件,所以我们可以利用这个属性,来实现下拉刷新功能。

两种方法都可以,第一种比较简单,易上手,毕竟一些逻辑系统已经给你处理好了,第二种适合那种想要自定义下拉刷新样式的小程序,我们讲解电商,就用第一种,系统提供的就好,主要是教会大家怎么用。以首页为例

  1. home.json 参数配置
"enablePullDownRefresh": true

我们哪个页面需要下拉刷新,就在哪个页面对应的xxx.json文件配置上面属性,这个属性从字面意思也可以知道,是否允许下拉刷新,当然,如何你不想一个个配置允许下拉刷新,你可以直接在全局变量app.json的window里面配置上面这个属性,这样整个项目都允许下拉刷新了,这个一定要加的,因为系统默认是不具备下拉刷新功能的

  1. home.js

//下拉刷新onPullDownRefresh:function(){wx.showNavigationBarLoading() //在标题栏中显示加载//模拟加载setTimeout(function(){// completewx.hideNavigationBarLoading() //完成停止加载wx.stopPullDownRefresh() //停止下拉刷新},1500);},

** onPullDownRefresh** 下拉刷新事件监听,具体看一下里面的代码,wx.showNavigationBarLoading() 与wx.hideNavigationBarLoading() 这两句话是用来控制小菊花的显示和隐藏,由于我们现在还没有讲解网络请求,所以我就模拟了一下网络加载,通过setTimeout方法,写一个时间延迟的方法,这个方法可以模拟网络加载所消耗的时间,还有就是当网络加载完成我们要停止下拉刷新wx.stopPullDownRefresh() 。

这个到目前为止下拉刷新的功能已经完成了,但是还不够完美,还是有点怪怪的,就是下拉刷新没有动画,有木有~我那时也感到奇怪,微信封装的下拉刷新怎么可能这样呐,后来我参考别人写的代码,发现一个小坑,先看一下我填完坑的效果吧

怎么样,是不是顺眼多了,想知道我是怎么加入这个动画的嘛,让我来给你揭晓,其实很简单,只需要一句话代码在app.json中window里配置下面属性,这个是配置整个系统的背景颜色,为什么我配置系统颜色就会出现下拉刷新了呐,原因就在下拉刷新的动画本身就有,只不过当我们没配置背景颜色,系统默认就为白色,动画也是白色,所以我们就看不到动画效果,是不是有点坑,哈哈~~

"backgroundColor": "#f0145a"

加载更多

实现加载更多也同理有两种方式

  1. 调用系统的API
  2. 监听scroll-view,bindscrolltolower滑动到底部的监听

我还是拿第一种实现方式讲解,处理方式和下拉刷新略有不同,不过也大同小异吧,还是以首页为例

  1. home.js

  //加载更多onReachBottom: function () {console.log('加载更多')setTimeout(() => {this.setData({isHideLoadMore: true,recommends: [{goodId: 7,name: 'OLAY玉兰油精油沐浴露玫瑰滋养二合一450ml',url: 'bill',imageurl: 'http://mz.djmall.xmisp.cn/files/product/20161213/148162245074.jpg',newprice: "¥36.60",oldprice: "¥40.00",},{goodId: 10,name: '兰蔻玫瑰清滢保湿柔肤水嫩肤水化妆水400ml补水保湿温和不刺激',url: 'bill',imageurl: 'http://mz.djmall.xmisp.cn/files/product/20161201/148057937593.jpg',newprice: "¥30.00",oldprice: "¥80.00",}, {goodId: 11,name: 'Lancome/兰蔻清莹柔肤爽肤水/粉水400ml补水保湿玫瑰水化妆水',url: 'bill',imageurl: 'http://mz.djmall.xmisp.cn/files/product/20161201/148057953326.jpg',newprice: "¥30.00",oldprice: "¥80.00",},{goodId: 12,name: '美国CLINIQUE倩碧黄油无油/特效润肤露125ml',url: 'bill',imageurl: 'http://mz.djmall.xmisp.cn/files/product/20161201/14805828016.jpg',newprice: "¥239.00",oldprice: "¥320.00",},{goodId: 13,name: '法国LANCOME兰蔻柔皙轻透隔离防晒乳霜50ML2017年3月到期',url: 'bill',imageurl: 'http://mz.djmall.xmisp.cn/files/product/20161201/148058014894.jpg',newprice: "¥130.00",oldprice: "¥180.00",},],})}, 1000)}

onReachBottom系统提供的触底事件的监听,和下拉刷新一样,我们也是模拟一些数据,加了一个时间延迟的事件,isHideLoadMore,一个自定义的值,用来控制显示和隐藏加载控件

  1. home.wxml
 <view class="weui-loadmore" hidden="{{isHideLoadMore}}"><view class="weui-loading"></view><view class="weui-loadmore__tips">正在加载</view></view>

在home.wxml底部加入上面的代码,这是加载更多的控件,加载更多待遇就没下拉刷新待遇好,系统并没有提供加载更多的控件动画,所以我们需要自己制作

  1. home.wxss

/*  加载更多   */
.weui-loading {margin: 0 5px;width: 20px;height: 20px;display: inline-block;vertical-align: middle;-webkit-animation: weuiLoading 1s steps(12, end) infinite;animation: weuiLoading 1s steps(12, end) infinite;background: transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=) no-repeat;background-size: 100%;
}
.weui-loadmore {width: 65%;margin: 1.5em auto;line-height: 1.6em;font-size: 14px;text-align: center;
}
.weui-loadmore__tips {display: inline-block;vertical-align: middle;
}

这个是我们自定义的样式,样式很简单,就是一个简单的加载小菊花,这里我要讲解的是 weui-loading 样式里设置 background,data:image/svg+xml;base64这个是什么意思呐,我们之前一般设置背景直接加入颜色,这个是background的另一种用法,加入图片,这个图片还有点特别是base64格式,并用svg绘制的,当然你还可以直接把url里面写入图片路径也是可以的,好,下面我们一起看一下效果吧!

作者:代码君_Coder
链接:https://www.jianshu.com/p/8c98af820fea
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

微信小程序实战篇-下拉刷新与加载更多相关推荐

  1. TabLayout+ViewPager无限轮播加小圆点,XRecyclerView下拉刷新,加载更多

    效果图 要导入的依赖 compile files('libs/okhttp-3.9.0.jar')     compile files('libs/okio-1.13.0.jar')     comp ...

  2. 微信小程序订单页面下拉刷新上拉分页加载

    微信小程序开发交流qq群   581478349    承接微信小程序开发.扫码加微信. 正文: 效果图: 代码: json代码: {"enablePullDownRefresh" ...

  3. 微信小程序页面事件 - 下拉刷新与上拉触底

    一.下拉刷新 1.概念:下拉刷新是移动端的专有名词,指的是通过手指在屏幕上的下拉滑动操作,从而重新加载页面数据的行为. 2. 启用下拉刷新 启用下拉刷新有两种方式: ①全局开启下拉刷新 在 app.j ...

  4. 【微信小程序】实现下拉刷新和上拉触底加载更多数据的页面事件

    1.下拉刷新事件 1. 什么是下拉刷新 下拉刷新是移动端的专有名词,指的是通过手指在屏幕上的下拉滑动操作,从而重新加载页面数据的行为 2. 启用下拉刷新 启用下拉刷新有两种方式: ① 全局开启下拉刷新 ...

  5. 微信小程序 - 手写下拉刷新效果

    问题 最近在仿写腾讯新闻小程序,在首页中分别有三个板块,它们是在一个页面中通过滑动tab的效果来进行切换.所以我用swiper + scroll-view来模仿这样的效果,但是在后面做下拉刷新的时候, ...

  6. DCloud-MUI 下拉刷新与加载更多

    下拉刷新 单WebView 实现原理 下拉刷新,触发的是原生下拉刷新控件,而整个webview位置不会发生变化,所以不会在拖动过程中发生DOM重绘,当控件拖动到一定位置触发动态加载数据以及刷新操作.此 ...

  7. 提高微信小程序的应用速度的常见方式有哪些? 小程序怎么实现下拉刷新? 简述微信小程序原理? 小程序的发布流程(开发流程)分析下微信小程序的优劣势?小程序授权登录流程? 小程序支付如何实现

    小程序部分常见面试题 提高微信小程序的应用速度的常见方式有哪些? 提高页面加载速度 用户行为预测 减少默认data的大小 组件化方案 分包预下载 小程序与原生App相比优缺点? 优点: 基于微信平台开 ...

  8. 微信小程序实战篇-购物车

    哈喽,大家好,快半个月没写了,现在提笔都有点生硬了,一直没更新的原因,一个是代码君也要上班,加上最近工作比较忙,还有就是写文章一直未被认可,所以没什么动力再创作了,那时真的坚持不下去,打算放弃了,感谢 ...

  9. 微信小程序实战篇:实现抖音评论效果

    IT实战联盟博客:http://blog.100boot.cn 我们在写小程序的时候经常会遇到弹出层的效果而现有官网提供的跳转方法多数是不支持参数传递的.本文教大家做一个抖音评论效果的小程序 首先看下 ...

最新文章

  1. StaticFactoryMethod_Level2
  2. 联合国召开会议讨论“杀手机器人”问题
  3. 网易云易盾与A10 Networks达成战略合作 携手打造抗DDoS攻击的解决方案
  4. OpenEjb使用笔记--让Tomcat可以部署EJB
  5. c语言sin函数近似值,用泰勒公式求sin(x)的近似值
  6. html 模板配置,模板文件配置
  7. Windows 10《描图》应用现已开源
  8. 裸奔、抽烟、凡尔赛,原来数学家玩得这么野……
  9. A+B for Matrices 及 C++ transform的用法
  10. Leetcode--714. 买卖股票的最佳时间含手续费
  11. Thinkphp5.0内核仿阿里巴巴小说双端网站源码
  12. 计算机多功能发展,随着电子计算机向微型化和多功能化发展,它的体积大大缩小,成本大大降低。性能明 - 问答库...
  13. Web开发面临的挑战主要有哪些?
  14. 浏览器了解(一)浏览器大概流程
  15. 基于STM32的DS1302时钟模块驱动程序
  16. 三菱PLC编程语言的特点
  17. 数据结构: 树形结构+思维导图
  18. Base16的编码和解码原理及代码
  19. php excel 下拉菜单,Laravel Excel库(Maatwebsite):如何在导出中创建下拉列表 - php
  20. 台湾J2ME专家王森北京讲座---掌上开发专业研讨

热门文章

  1. 手机端html5网页音乐播放,js实现移动端H5页面音乐播放,兼容微信 safari浏览器...
  2. Citrix联机插件配置管理器:找不到满足所有锁定要求的值
  3. PNG格式如何在线压缩的简单方法
  4. 不等式解集怎么取_口诀巧取不等式组的解集
  5. 波束赋形技术lms算法在matlab仿真,自适应波束成形算法LMS、RLS、VSSLMS分解
  6. esp32 参考引脚图
  7. 计算机领域的nature,Nature:什么是量子互联网?
  8. 微信怎样开通账户升级服务器,微信支付商户账户升级常见问题
  9. 使用rufus制作Windows Server 2008 U盘_wentfar·tsao
  10. 英特尔或退出芯片制造业务,拥抱台积电