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 相关文章推荐
用cssText批量修改样式
Aug 29 Javascript
jquery属性过滤选择器使用示例
Jun 18 Javascript
jQuery中hide()方法用法实例
Dec 24 Javascript
jQuery中:last-child选择器用法实例
Dec 31 Javascript
js实现div模拟模态对话框展现URL内容
May 27 Javascript
一览画面点击复选框后获取多个id值的方法
May 30 Javascript
JavaScript实现的商品抢购倒计时功能示例
Apr 17 Javascript
vue cli构建的项目中请求代理与项目打包问题
Feb 26 Javascript
vue.js配合$.post从后台获取数据简单demo分享
Aug 11 Javascript
Three.JS实现三维场景
Dec 30 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
May 07 Javascript
layer ui插件显示tips时,修改字体颜色的实现方法
Sep 11 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
2019年中国咖啡业现状与发展趋势
2021/03/04 咖啡文化
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
PHP中file_get_contents高?用法实例
2014/09/24 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
Yii框架响应组件用法实例分析
2019/09/04 PHP
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
jQuery实现的网页换肤效果示例
2016/09/20 Javascript
JavaScript用构造函数如何获取变量的类型名
2016/12/23 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
JS中的Replace()传入函数时的用法详解
2017/09/11 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
为什么要使用Vuex的介绍
2019/01/19 Javascript
vue实现element表格里表头信息提示功能(推荐)
2019/11/20 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
python实现查询苹果手机维修进度
2015/03/16 Python
python实现flappy bird小游戏
2018/12/24 Python
对python 中class与变量的使用方法详解
2019/06/26 Python
Python使用plt.boxplot() 参数绘制箱线图
2020/06/04 Python
python如何控制进程或者线程的个数
2020/10/16 Python
西式婚礼主持词
2014/03/13 职场文书
幼儿园招生广告
2014/03/19 职场文书
青年志愿者活动总结
2014/04/26 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
弄虚作假心得体会
2014/09/10 职场文书
警察正风肃纪剖析材料
2014/10/16 职场文书
2014年文明创建工作总结
2014/11/25 职场文书
2015秋季开学典礼新闻稿
2015/07/17 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
go开发alertmanger实现钉钉报警
2021/07/16 Golang
Java处理延时任务的常用几种解决方案
2022/06/01 Java/Android
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android