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 相关文章推荐
JavaScript入门教程(3) js面向对象
Jan 31 Javascript
js 代码集(学习js的朋友可以看下)
Jul 22 Javascript
jquery的Tooltip插件 qtip使用详细说明
Sep 08 Javascript
jQuery设置和获取HTML、文本和值示例
Jul 08 Javascript
Javascript 中创建自定义对象的方法汇总
Dec 04 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
Aug 17 Javascript
轻松掌握JavaScript代理模式
Aug 26 Javascript
老生常谈javascript中逻辑运算符&amp;&amp;和||的返回值问题
Apr 13 Javascript
javascript中json对象json数组json字符串互转及取值方法
Apr 19 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
Aug 06 Javascript
vue2过滤器模糊查询方法
Sep 16 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
Sep 18 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
php4的session功能评述(二)
2006/10/09 PHP
一个用php3编写的简单计数器
2006/10/09 PHP
PHP判断浏览器、判断语言代码分享
2015/03/05 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
PHP使用栈解决约瑟夫环问题算法示例
2017/08/27 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
JavaScript制作弹出层效果
2016/12/02 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
2017/06/15 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
详解Vue中watch的详细用法
2018/11/28 Javascript
Vue.js中的高级面试题及答案
2020/01/13 Javascript
Openlayers3实现车辆轨迹回放功能
2020/09/29 Javascript
python 爬取微信文章
2016/01/30 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
Tensorflow 实现修改张量特定元素的值方法
2018/07/30 Python
Python高级特性与几种函数的讲解
2019/03/08 Python
Python模块、包(Package)概念与用法分析
2019/05/31 Python
tensorflow estimator 使用hook实现finetune方式
2020/01/21 Python
整理的15个非常有用的 HTML5 开发教程和速查手册
2011/10/18 HTML / CSS
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
说出你对remoting 和webservice的理解和应用
2014/06/08 面试题
面料业务员岗位职责
2013/12/26 职场文书
2014年党委工作总结
2014/11/22 职场文书
旷工辞退通知书
2015/04/17 职场文书
2015年家长学校工作总结
2015/04/22 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang
python缺失值的解决方法总结
2021/06/09 Python