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 相关文章推荐
MSN消息提示类
Sep 05 Javascript
js控制iframe的高度/宽度让其自适应内容
Apr 09 Javascript
js随机生成字母数字组合的字符串 随机动画数字
Sep 02 Javascript
js调用百度地图及调用百度地图的搜索功能
Sep 07 Javascript
详解javascript数组去重问题
Nov 06 Javascript
分享我的jquery实现下拉菜单心的
Nov 29 Javascript
JavaScript隐式类型转换
Mar 15 Javascript
javascript小数精度丢失的完美解决方法
May 31 Javascript
高效Web开发的10个jQuery代码片段
Jul 22 Javascript
vue.js实现刷新当前页面的方法教程
Jul 05 Javascript
Element InputNumber 计数器的实现示例
Aug 03 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
Oct 28 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获取程序执行的时间
2013/06/09 PHP
PHP正则验证Email的方法
2015/06/15 PHP
浅析Yii2 GridView实现下拉搜索教程
2016/04/22 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
安装docker和docker-compose实例详解
2019/07/30 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
dojo 之基础篇
2007/03/24 Javascript
Jquery 数组操作大全个人总结
2013/11/13 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
用AngularJS来实现监察表单按钮的禁用效果
2016/11/02 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
微信小程序文章列表功能完整实例
2020/06/03 Javascript
[05:20]卡尔工作室_DOTA2新手教学_DOTA2超强新手功能
2013/04/22 DOTA
理解Python垃圾回收机制
2016/02/12 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
python函数不定长参数使用方法解析
2019/12/14 Python
Django 实现将图片转为Base64,然后使用json传输
2020/03/27 Python
Python 字典一个键对应多个值的方法
2020/09/29 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
HTML5视频支持检测(检查浏览器是否支持视频播放)
2013/06/08 HTML / CSS
详解android与HTML混合开发总结
2018/06/06 HTML / CSS
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
女装和独特珠宝:Sundance Catalog
2018/09/19 全球购物
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
创立科技Java面试题
2015/11/29 面试题
运动会广播稿100字
2014/01/11 职场文书
小学岗位竞聘方案
2014/01/22 职场文书
财产公证书样本
2014/04/04 职场文书
学校搬迁方案
2014/06/15 职场文书
婚育证明样本
2015/06/16 职场文书
大学生活感想
2015/08/10 职场文书
心理学培训心得体会
2016/01/22 职场文书