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 检测浏览器和操作系统的脚本
Dec 26 Javascript
JavaScript 内置对象属性及方法集合
Jul 04 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
Feb 21 Javascript
异步加载JS、CSS代码(推荐)
Jun 15 Javascript
jquery过滤特殊字符',防sql注入的实现方法
Aug 17 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
Feb 07 Javascript
JS得到当前时间的方法示例
Mar 24 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
Jun 13 Javascript
requirejs + vue 项目搭建详解
Jun 16 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
Aug 31 Javascript
vue单页应用在页面刷新时保留状态数据的方法
Sep 21 Javascript
vue+element-ui表格封装tag标签使用插槽
Jun 18 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下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
php准确计算复活节日期的方法
2015/04/18 PHP
总结PHP中DateTime的常用方法
2016/08/11 PHP
PHP调用接口API封装的例子
2019/10/11 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
2020/04/20 PHP
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
对JavaScript中this指针的新理解分享
2015/01/31 Javascript
JQuery实现鼠标滚轮滑动到页面节点
2015/07/28 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
2015/10/27 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
JS控制层作圆周运动的方法
2016/06/20 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
微信小程序实现长按删除图片的示例
2018/05/18 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
基于python的汉字转GBK码实现代码
2012/02/19 Python
Python中使用Queue和Condition进行线程同步的方法
2016/01/19 Python
python中int与str互转方法
2018/07/02 Python
人工神经网络算法知识点总结
2019/06/11 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
Python属性和内建属性实例解析
2020/01/14 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
文员的职业生涯规划发展方向
2014/02/08 职场文书
市场部经理岗位职责
2014/04/10 职场文书
松材线虫病防治方案
2014/06/15 职场文书
2014年国庆节寄语
2014/09/19 职场文书
加强干部作风建设整改方案
2014/10/24 职场文书
市委常委会班子党的群众路线教育实践活动整改方案
2014/10/25 职场文书
团员个人年度总结
2015/02/26 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
新农村建设指导员工作总结
2015/08/13 职场文书
Python max函数中key的用法及原理解析
2021/06/26 Python
Mysql 数据库中的 redo log 和 binlog 写入策略
2022/04/26 MySQL