vue使用better-scroll实现下拉刷新、上拉加载


Posted in Javascript onNovember 23, 2018

本文目的是为了实现列表的下拉刷新、上拉加载,所以选择了better-scroll这个库。

用好这个库,需要理解下面说明

  • 必须包含两个大的div,外层和内层div
  • 外层div设置可视的大小(宽或者高)-有限制宽或高
  • 内层div,包裹整个可以滚动的部分
  • 内层div高度一定大于外层div的宽或高,才能滚动

1、先开始写一个简单demo,最基本的代码架构

template

<div ref="wrapper" class="wrapper">
 <ul class="content">
 <li>...</li>
 <li>...</li>
 </ul>
</div>

css

/*对外层div进行了高度上的限制*/
.wrapper {
 display: fixed;
 left: 0;
 top: 0;
 bottom: 0;
 width: 100%;
 height:300px;
 overflow:hidden;
}
.content {
 width:100%;
 height:800px;
 background:blue;
}

script

import BScroll from 'better-scroll'
this.scroll = new BScroll(new BScroll(this.$refs.wrapper))

2、进行改造升级,加上上拉刷新、下拉加载的代码。

mounted () {
 this.scroll = new BScroll(this.$refs.wrapper, {
 // 上拉加载
 pullUpLoad: {
 // 当上拉距离超过30px时触发 pullingUp 事件
 threshold: -30
 },
 // 下拉刷新
 pullDownRefresh: {
 // 下拉距离超过30px触发pullingDown事件
 threshold: 30,
 // 回弹停留在距离顶部20px的位置
 stop: 20
 }
 })
 this.scroll.on('pullingUp', () => {
 console.log('处理上拉加载操作')
 setTimeout(() => {
 // 事情做完,需要调用此方法告诉 better-scroll 数据已加载,否则上拉事件只会执行一次
 this.scroll.finishPullUp()
 }, 2000)
 })
 this.scroll.on('pullingDown', () => {
 console.log('处理下拉刷新操作')
 setTimeout(() => {
 console.log('asfsaf')
 // 事情做完,需要调用此方法告诉 better-scroll 数据已加载,否则下拉事件只会执行一次
 this.scroll.finishPullDown()
 }, 2000)
 })
 }

原理已经讲清楚了,上面的代码是一个功能示例,码友结合自己项目扩展就行啦。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
prototype 的说明 js类
Sep 07 Javascript
JS实现时间格式化的方式汇总
Oct 16 Javascript
得到form下的所有的input的js代码
Nov 07 Javascript
什么是Node.js?Node.js详细介绍
Jun 01 Javascript
jquery实现select选择框内容左右移动代码分享
Nov 21 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
Jan 18 Javascript
JS Testing Properties 判断属性是否在对象里的方法
Oct 01 Javascript
微信小程序用户信息encryptedData详解
Aug 24 Javascript
webpack4 SplitChunks实现代码分隔详解
May 23 Javascript
微信小程序版本自动更新的方法
Jun 14 Javascript
深入理解Antd-Select组件的用法
Feb 25 Javascript
浅析我对JS延迟异步脚本的思考
Oct 12 Javascript
详解Vue2.0组件的继承与扩展
Nov 23 #Javascript
angular4自定义表单控件[(ngModel)]的实现
Nov 23 #Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
Nov 23 #Javascript
Vue.js组件间通信方式总结【推荐】
Nov 23 #Javascript
vue-cli 2.*中导入公共less文件的方法步骤
Nov 22 #Javascript
vue全局使用axios的方法实例详解
Nov 22 #Javascript
vue中的ref和$refs的使用
Nov 22 #Javascript
You might like
二十行语句实现从Excel到mysql的转化
2006/10/09 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
JS 对象(Object)和字符串(String)互转方法
2016/05/20 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
2017/01/04 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
Javascript实现信息滚动效果
2017/05/18 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
vue.js 嵌套循环、if判断、动态删除的实例
2018/03/07 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
2018/06/06 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
python简单验证码识别的实现方法
2019/05/10 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
解决pip install psycopg2出错问题
2020/07/09 Python
浅析python实现动态规划背包问题
2020/12/31 Python
用HTML5实现手机摇一摇的功能的教程
2012/10/30 HTML / CSS
斐乐美国官方网站:FILA美国
2019/03/01 全球购物
艺术系大学生毕业个人自我评价
2013/09/19 职场文书
财务经理岗位职责
2013/11/09 职场文书
机电专业个人求职信范文
2013/12/30 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
幸福家庭标语
2014/06/27 职场文书
2014领导干部学习焦裕禄同志先进事迹思想汇报
2014/09/19 职场文书
写给妈妈的感谢信
2015/01/22 职场文书
2016年教师新年寄语
2015/08/18 职场文书
vue-cropper插件实现图片截取上传组件封装
2021/05/27 Vue.js
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL