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 相关文章推荐
Lazy Load 延迟加载图片的 jQuery 插件
Feb 06 Javascript
javascript 闭包
Sep 15 Javascript
jquery入门—选择器实现隔行变色实例代码
Jan 04 Javascript
jQuery中setTimeout的几种使用方法小结
Apr 07 Javascript
jquery.form.js用法之清空form的方法
Mar 07 Javascript
jQuery 实现侧边浮动导航菜单效果
Dec 26 Javascript
js删除数组元素、清空数组的简单方法(必看)
Jul 27 Javascript
JS控制HTML元素的显示和隐藏的两种方法
Sep 27 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
Apr 13 jQuery
前后端如何实现登录token拦截校验详解
Sep 03 Javascript
vue路由传参的基本实现方式小结【三种方式】
Feb 05 Javascript
JS eval代码快速解密实例解析
Apr 23 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
学习使用PHP数组
2006/10/09 PHP
php简单实现数组分页的方法
2016/04/30 PHP
yii2多图上传组件的使用教程
2018/05/10 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
thinkphp3.2同时连接两个数据库的简单方法
2019/08/13 PHP
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
2016/05/30 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
vue 设置路由的登录权限的方法
2018/07/03 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
每个 JavaScript 工程师都应懂的33个概念
2018/10/22 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
[20:30]职业巡回赛回顾
2018/08/09 DOTA
python中关于for循环的碎碎念
2017/06/30 Python
关于反爬虫的一些简单总结
2017/12/13 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
Pycharm之快速定位到某行快捷键的方法
2019/01/20 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
python字符串格式化方式解析
2019/10/19 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
Python栈的实现方法示例【列表、单链表】
2020/02/22 Python
TensorFlow Autodiff自动微分详解
2020/07/06 Python
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
夜大自我鉴定
2013/10/31 职场文书
企划经理的岗位职责
2013/11/17 职场文书
八年级历史教学反思
2014/01/10 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
工作经常出错的检讨书
2014/09/13 职场文书
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS