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 相关文章推荐
添加到收藏夹代码(兼容几乎所有的浏览器)
Jan 09 Javascript
关于javascript document.createDocumentFragment()
Apr 04 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
Jun 21 Javascript
js onclick事件传参讲解
Nov 06 Javascript
js验证输入是否为手机号码或电话号码示例
Dec 30 Javascript
详解在Angular项目中添加插件ng-bootstrap
Jul 04 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
Dec 19 Javascript
Vue开发之watch监听数组、对象、变量操作分析
Apr 25 Javascript
JS实现可切换图片的幻灯切换效果示例
May 24 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
Sep 10 jQuery
JavaScript中关于预编译、作用域链和闭包的理解
Mar 31 Javascript
如何用threejs实现实时多边形折射
May 07 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
推荐一款MAC OS X 下php集成开发环境mamp
2014/11/08 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
tp5.1 框架数据库高级查询技巧实例总结
2020/05/25 PHP
jquery按回车提交数据的代码示例
2013/11/05 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
javascript获取四位数字或者字母的随机数
2015/01/09 Javascript
jquery实现炫酷的叠加层自动切换特效
2015/02/01 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
2016/10/11 Javascript
详解Angular的双向数据绑定(MV-VM)
2016/12/26 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
Vue项目中如何使用Axios封装http请求详解
2019/10/23 Javascript
vue项目中锚点定位替代方式
2019/11/13 Javascript
jQuery-App输入框实现实时搜索
2020/11/19 jQuery
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
python中使用enumerate函数遍历元素实例
2014/06/16 Python
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
2016/07/02 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
python操作日志的封装方法(两种方法)
2019/05/23 Python
关于Python3 lambda函数的深入浅出
2019/11/27 Python
安装完Python包然后找不到模块的解决步骤
2020/02/13 Python
加拿大休闲和工业服装和鞋类零售商:L’Équipeur
2018/01/12 全球购物
Allen Edmonds官方网站:一家美国优质男士鞋类及配饰制造商
2019/03/12 全球购物
最新奶茶店创业计划书范文
2014/02/08 职场文书
《乡愁》教学反思
2014/02/18 职场文书
工作会议主持词
2014/03/17 职场文书
施工安全责任书
2014/04/14 职场文书
2014年绿化工作总结
2014/12/09 职场文书
服务员岗位职责
2015/02/03 职场文书
写给老婆的保证书
2015/02/27 职场文书
反邪教观后感
2015/06/11 职场文书
培训感想范文
2015/08/07 职场文书
总结Python常用的魔法方法
2021/05/25 Python