前端下拉刷新,上拉加载的实现一直都有很多坑,今天入以下 better-scroll 的坑,先附上 better-scroll 的官方文档,如果要深入使用还是得看文档 查看链接
先看下better-scroll实现时的dom结构,如下代码
1 <div class="scroller" ref="scroller"> 2 <div class="scroll-list"> 3 <div class="scroll-item"></div> 4 <div class="scroll-item"></div> 5 <div class="scroll-item"></div> 6 <div class="scroll-item"></div> 7 <p class="loading">{{ loadingText}}</p> 8 </div> 9 </div>
如上
初始化 better-scroll, 代码如下(可以将这一步放在第三步调用,不需要拎出来直接调用)
1 initScroller() { 2 //初始化betterScroll 3 let self = this 4 self.scroller = new BScroll(self.$refs.scroller, { 5 probeType: 1, 6 click: true 7 }) 8 self.scroller.on(‘touchend‘, function (position) { 9 if (position.y < this.maxScrollY - 30) { 10 if (self.isNoMore) return self.loadingText = ‘没有更多了...‘ 11 self.loadingText = ‘加载中...‘ 12 setTimeout(function () { 13 self.getList() 14 }, 1000) 15 } 16 if (position.y > 50) { 17 // 下拉刷新 18 } 19 }) 20 }
如上代码(vue)
当页面发生变化时刷新 better-scroll,如下 this 是vue中的代码
1 getList () { 2 ... 3 .., 4 ... 5 this.$nextTick(() => { 6 this.loadingText = ‘上拉加载‘ 7 if (this.isNoMore) { 8 this.loadingText = ‘没有更多了...‘ 9 } 10 this.scroller ? this.scroller.refresh() : this.initScroller() 11 }) 12 }
以上代码就是上拉加载下拉刷新的基本代码
下面总结一些坑点
1. 手指触摸了一点页面就哧溜滑动了好多,可能是给容器设置 -webkit-overflow-scrolling: touch; 样式了,删掉即可
待续
前端vue使用better-scroll实现下拉刷新,上拉加载
原文:https://www.cnblogs.com/blackbentel/p/11676659.html