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写的一个DIV 弹出网页对话框
Aug 14 Javascript
JQuery 浮动导航栏实现代码
Aug 27 Javascript
使用GruntJS构建Web程序之合并压缩篇
Jun 06 Javascript
js锁屏解屏通过对$.ajax进行封装实现
Jul 31 Javascript
Bootstrap中CSS的使用方法
Feb 17 Javascript
es7学习教程之Decorators(修饰器)详解
Jul 21 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
Jan 08 Javascript
spirngmvc js传递复杂json参数到controller的实例
Mar 29 Javascript
vue-cli 3.x配置跨域代理的实现方法
Apr 12 Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
Apr 30 Javascript
小程序云函数调用API接口的方法
May 17 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
Jun 17 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/11/19 PHP
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
php preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
PHP基于swoole多进程操作示例
2019/08/12 PHP
JavaScript为对象原型prototype添加属性的两种方式
2010/08/01 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
Node.js模块封装及使用方法
2016/03/06 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
js运动事件函数详解
2016/10/21 Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
2016/12/30 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
bootstrap table sum总数量统计实现方法
2017/10/29 Javascript
微信小程序实现图片上传、删除和预览功能的方法
2017/12/18 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
基于bootstrap页面渲染的问题解决方法
2018/08/09 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
梅尔频率倒谱系数(mfcc)及Python实现
2019/06/18 Python
Django ORM 自定义 char 类型字段解析
2019/08/09 Python
python实现简单银行管理系统
2019/10/25 Python
使用Keras训练好的.h5模型来测试一个实例
2020/07/06 Python
Python库安装速度过慢解决方案
2020/07/14 Python
Marlies Dekkers内衣美国官方网上商店:高端内衣品牌
2018/11/12 全球购物
应届毕业生就业自荐信
2013/10/26 职场文书
幼儿运动会邀请函
2014/01/17 职场文书
家庭贫困证明
2014/09/23 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
小学生作文批改评语
2014/12/25 职场文书
简历自我评价模板
2015/03/11 职场文书
任命通知范文
2015/04/21 职场文书
2015公司年度工作总结
2015/05/14 职场文书