vue使用better-scroll實現下拉刷新、上拉加載

這篇文章主要爲大家詳細介紹了vue使用better-scroll實現下拉刷新、上拉加載,具有一定的參考價值,感興趣的小夥伴們可以參考一下

本文目的是爲了實現列表的下拉刷新、上拉加載,所以選擇了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)
 })
 }

原理已經講清楚了,上面的代碼是一個功能示例,碼友結合自己項目擴展就行啦。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持神馬文庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章