文档地址:https://ustbhuangyi.github.io/better-scroll/doc/zh-hans/
结合vue的学习:https://zhuanlan.zhihu.com/p/27407024
作者成品:http://ustbhuangyi.com/sell/#/goods

一.使用

代码是使用vue-cli的项目
html

<div class="wrapper" ref="wrapper"><ul class="content" ref="content"><li v-for="(item,key) in detail" :key="key" v-if="detail.length > 0"><Row type="flex" justify="start" align="middle"><Col :span="8" class="detail-item"><span :class="{'color-red':item.is_delay === 1}">{{item.order_sn}}</span></Col><Col :span="8" class="detail-item"><span>{{item.date}}</span></Col><Col :span="8" class="detail-item"><span>¥ {{item.partner_profit  | number2}}</span></Col></Row></li><li v-if="!scrollFinish"><Row type="flex" justify="center" align="middle"><Col :span="6" v-if="loadingText"><p>{{loadingText}}</p></Col><Col :span="2" v-else><Spin size="large"></Spin></Col></Row></li></ul></div>

js

mounted() {// 设置wrapper的高度this.$refs.wrapper.style.height = document.getElementById("app").offsetHeight - document.getElementById("scroll").offsetTop + "px";// better-scroll 的content高度不大于wrapper高度就不能滚动,这里的问题是,当一页数据的高度不够srapper的高度的时候,即使存在n页也不能下拉// 需要设置content的min-height大于wrapper高度this.$refs.content.style.minHeight = this.$refs.wrapper.offsetHeight + 1 + "px";this._initScroll();this.getIncomeDetail(this.nextPage);// 设置scroll的高度// this.scrollHeight = document.getElementById("app").offsetHeight - document.getElementById("scroll").offsetTop ;},
methods:{_initScroll() {this.orderScroll = new BScroll(this.$refs.wrapper, {probeType: 3,    click:true,pullUpLoad: {   // 配置上啦加载threshold: -80   //上啦80px的时候加载},mouseWheel: {    // pc端同样能滑动speed: 20,invert: false},useTransition:false,  // 防止iphone微信滑动卡顿});// 上拉加载数据this.orderScroll.on('pullingUp',()=>{this.scrollFinish = false;// 防止一次上拉触发两次事件,不要在ajax的请求数据完成事件中调用下面的finish方法,否则有可能一次上拉触发两次上拉事件this.orderScroll.finishPullUp();// 加载数据this.getIncomeDetail(this.nextPage);});}
}

二.注意

https://ustbhuangyi.github.io/better-scroll/doc/zh-hans/#滚动原理
这里官网的明确说明
当 content 的高度不超过父容器的高度,是不能滚动的
当 content 的高度不超过父容器的高度,是不能滚动的
当 content 的高度不超过父容器的高度,是不能滚动的
所以上文中要有代如下:

// 设置content的高度比wrapper的高度大1px
this.$refs.content.style.minHeight = this.$refs.wrapper.offsetHeight + 1 + "px";

三. 上拉加载下拉刷新中注意

上拉加载和下拉刷新后要调用响应的finishPullUp和finishPullDown,然后在调用refresh
上拉加载下拉刷新当从本地获取数据时,因为很快,所以不会出现问题
但是, 当从服务器获取数据的时候,调用finishPullUp和finishPullDown和finish的时机很重要,应该在加载完数据的$nextTick中调用,否则会出现下拉问题

四.其他的请看文档即可

better-scroll使用相关推荐

  1. extjs中滚动条属性_十分钟快速了解 JS 中的 offset、scroll、client

    (给前端大全加星标,提升前端技能) 作者:前端下午茶 公号 /  SHERlocked93 在下开发中经常碰到 offset.scroll.client 这几个关键字,比如 offsetLeft.of ...

  2. react取消监听scroll事件

    如果要移除事件addEventListener的执行函数必须使用外部函数而不能直接使用匿名函数 错误写法: // 这样写是移除不了滚动事件的 componentDidMount() {// 添加滚动监 ...

  3. jquery实现返回顶部按钮和scroll滚动功能[带动画效果] 转载

    转载自:老驴的博客 jQuery脚本: 1 <script type="text/javascript">2$(function() {3 var scrollDiv ...

  4. javascript + css 利用div的scroll属性让TAB动感十足

    做了一个动感十足的TAB不敢独占,写出来大家共享,大家可以到宝宝孕历首页看看效果. 其实现是通过js控制div的scrollLeft属性来实现的,tab分成两个部分tab头部分和tab体部分,tab体 ...

  5. 31 元素滚动scroll系列

    技术交流 QQ 群:1027579432,欢迎你的加入! 1.元素 scroll 系列属性 使用 scroll 系列的相关属性可以动态的得到该元素的大小.滚动距离等. 2.页面被卷去的头部 如果浏览器 ...

  6. 搜索页面scroll下拉时候进行刷新,显示更多搜索值

    1.封装扩展scroll.vue功能: 1 //props传值 pullup:{ 2 type:Boolean, 3 default:false 4 } 5 6 7 _initScroll(){ 8 ...

  7. [转]用 jQuery 实现页面滚动(Scroll)效果的完美方法

    转自: http://zww.me/archives/25144 很多博主都写过/转载过用 jQuery 实现页面滚动(Scroll)效果的方法,但目前搜来的方法大都在 Opera 下有个小 Bug: ...

  8. scroll事件实现监控滚动条并分页显示示例(zepto.js)

    scroll事件实现监控滚动条并分页显示示例(zepto.js  ) 需求:在APP落地页上的底部位置显示此前其他用户的购买记录,要求此div盒子只显示3条半,但一页有10条,div内的滑动条滑到一页 ...

  9. offset/client/scroll一些总结

    offset/client/scroll一些总结 1.offset 首先offset共有五个值 1.offsetParent 2.offsetTop 3.offsetLeft 4.offsetWidt ...

  10. 如何在Storyboard中使用Scroll view

    本文章环境Xcode 11 在开始使用scroll view之前(storyboard/XIB),我们必须搞清楚两个东西 在Storybord/Xib中使用Scroll view,会有哪些结构 为什么 ...

最新文章

  1. 12306能删候补订单记录_12306候补购票功能在哪里怎么用 火车票候补购票使用攻略...
  2. framebuffer[转之]
  3. c语言 程序结集,c语言(结体程序设计).doc
  4. mysql inner join 和join_我想说:mysql的join真的很弱
  5. php可以用lucene吗,php – Lucene外国字符问题
  6. Python中的staticmethod和classmethod
  7. GSM/GPRS MODEM 的上网设置
  8. sql查询、删除重复相同数据的语句或只保留一条数据
  9. 物联网计算机控制技术,远距离物联网控制系统技术,你知道几个?
  10. Lambda表达式与Stream
  11. ----实现查看历史记录及清除功能的具体过程----
  12. 如何改typecho主题头像_零成本搭建hexo个人博客(二)--修改主题
  13. python读书心得体会范文_读书心得体会范文五篇-读书心得体会
  14. Android一点 仿淘宝购物车动画
  15. Redis爬坑记(一):incr命令和expire命令的误区
  16. java导出excel 打不开_Java使用POI生成Excel文件后打不开的问题
  17. b500k电位器引脚接法_6脚电位器B50K,引脚怎么接呢
  18. 智能汽车弹窗广告,真是一门好生意?
  19. proc_create的使用方法
  20. 银行的atm是一台通用计算机,ATM自动取款机是不是所有银行通用的,要不...

热门文章

  1. c语言 acos函数,acos - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
  2. Django的个人笔记
  3. leapmotion使用之一-如何用leapmotion代替鼠标简单操作
  4. 【路由器与交换机的作用与特点 】
  5. 小狼毫(RIME)输入法入门使用详细教程
  6. 8080时序驱动液晶屏
  7. 精益产品过程Step1:明确问题和目标用户
  8. 去国外出差的经验总结
  9. uni-app+uniCloud开发微信公众号H5网页如何使用云函数计算jssdk的签名,以及invalid signature 和 realUrl的问题
  10. 油猴脚本开发学习1--豌豆荚快速查看所有版本