better-scroll使用
文档地址: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使用相关推荐
- extjs中滚动条属性_十分钟快速了解 JS 中的 offset、scroll、client
(给前端大全加星标,提升前端技能) 作者:前端下午茶 公号 / SHERlocked93 在下开发中经常碰到 offset.scroll.client 这几个关键字,比如 offsetLeft.of ...
- react取消监听scroll事件
如果要移除事件addEventListener的执行函数必须使用外部函数而不能直接使用匿名函数 错误写法: // 这样写是移除不了滚动事件的 componentDidMount() {// 添加滚动监 ...
- jquery实现返回顶部按钮和scroll滚动功能[带动画效果] 转载
转载自:老驴的博客 jQuery脚本: 1 <script type="text/javascript">2$(function() {3 var scrollDiv ...
- javascript + css 利用div的scroll属性让TAB动感十足
做了一个动感十足的TAB不敢独占,写出来大家共享,大家可以到宝宝孕历首页看看效果. 其实现是通过js控制div的scrollLeft属性来实现的,tab分成两个部分tab头部分和tab体部分,tab体 ...
- 31 元素滚动scroll系列
技术交流 QQ 群:1027579432,欢迎你的加入! 1.元素 scroll 系列属性 使用 scroll 系列的相关属性可以动态的得到该元素的大小.滚动距离等. 2.页面被卷去的头部 如果浏览器 ...
- 搜索页面scroll下拉时候进行刷新,显示更多搜索值
1.封装扩展scroll.vue功能: 1 //props传值 pullup:{ 2 type:Boolean, 3 default:false 4 } 5 6 7 _initScroll(){ 8 ...
- [转]用 jQuery 实现页面滚动(Scroll)效果的完美方法
转自: http://zww.me/archives/25144 很多博主都写过/转载过用 jQuery 实现页面滚动(Scroll)效果的方法,但目前搜来的方法大都在 Opera 下有个小 Bug: ...
- scroll事件实现监控滚动条并分页显示示例(zepto.js)
scroll事件实现监控滚动条并分页显示示例(zepto.js ) 需求:在APP落地页上的底部位置显示此前其他用户的购买记录,要求此div盒子只显示3条半,但一页有10条,div内的滑动条滑到一页 ...
- offset/client/scroll一些总结
offset/client/scroll一些总结 1.offset 首先offset共有五个值 1.offsetParent 2.offsetTop 3.offsetLeft 4.offsetWidt ...
- 如何在Storyboard中使用Scroll view
本文章环境Xcode 11 在开始使用scroll view之前(storyboard/XIB),我们必须搞清楚两个东西 在Storybord/Xib中使用Scroll view,会有哪些结构 为什么 ...
最新文章
- 12306能删候补订单记录_12306候补购票功能在哪里怎么用 火车票候补购票使用攻略...
- framebuffer[转之]
- c语言 程序结集,c语言(结体程序设计).doc
- mysql inner join 和join_我想说:mysql的join真的很弱
- php可以用lucene吗,php – Lucene外国字符问题
- Python中的staticmethod和classmethod
- GSM/GPRS MODEM 的上网设置
- sql查询、删除重复相同数据的语句或只保留一条数据
- 物联网计算机控制技术,远距离物联网控制系统技术,你知道几个?
- Lambda表达式与Stream
- ----实现查看历史记录及清除功能的具体过程----
- 如何改typecho主题头像_零成本搭建hexo个人博客(二)--修改主题
- python读书心得体会范文_读书心得体会范文五篇-读书心得体会
- Android一点 仿淘宝购物车动画
- Redis爬坑记(一):incr命令和expire命令的误区
- java导出excel 打不开_Java使用POI生成Excel文件后打不开的问题
- b500k电位器引脚接法_6脚电位器B50K,引脚怎么接呢
- 智能汽车弹窗广告,真是一门好生意?
- proc_create的使用方法
- 银行的atm是一台通用计算机,ATM自动取款机是不是所有银行通用的,要不...
热门文章
- c语言 acos函数,acos - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
- Django的个人笔记
- leapmotion使用之一-如何用leapmotion代替鼠标简单操作
- 【路由器与交换机的作用与特点 】
- 小狼毫(RIME)输入法入门使用详细教程
- 8080时序驱动液晶屏
- 精益产品过程Step1:明确问题和目标用户
- 去国外出差的经验总结
- uni-app+uniCloud开发微信公众号H5网页如何使用云函数计算jssdk的签名,以及invalid signature 和 realUrl的问题
- 油猴脚本开发学习1--豌豆荚快速查看所有版本