1. 程式人生 > >vue2中引用 better-scroll的方法

vue2中引用 better-scroll的方法

vue2中引用 better-scroll的方法

 

 

使用時有三個要點:

一:html部分

<div class="example" ref="divScroll">
 <div>
 <p>內容1</p>
 <p>內容2</p>
 <ul>
 <li>list1</li>
 <li>list2</li>
 <ul>
 </div>
</div>

1.最外層加ref,讓better-scroll通過ref來獲取整個div;

2.緊跟一個div,不用加任何樣式或class, 最終可以滑動的部分就是這個div,這個div必須是 加了ref 的div 的 直接子元素。 在這個div裡面就可以放置希望滑動的內容了。

二: css部分

.example
 width: 100%
 position: absolute
 top: 174px
 bottom: 48px
 left: 0
 overflow: hidden
  1. 這裡只是舉例,並不是一定要這樣寫。
  2. 首先將 獲取到的加了 ref 的div 的 高度固定, 可以設定定位, 也可以設定 height, max-height...
  3. 加 overflow: hidden 。
  4. 三: js 部分
  5. 首先 引入 better-scroll:
import BScroll from 'better-scroll';

1: 使用 mounted() 函式

mounted() {
 this.scroll = new BScroll(this.$refs.divScroll, {
 click: true,
 });
 },

2.使用 created() 函式

created() {
 this.$nextTick(() => {
 this.scroll = new BScroll(this.$refs.divScroll, {
 click: true,
 });
 });
},

1.使用created 函式 要非同步執行(此時html 尚未渲染完成)。

  1. mounted函式 無需非同步執行(mounted 函式在html渲染完成後觸發)。

下面看下Vue中引入better-scroll的方法

1.用npm 安裝好 better-scroll

npm install--save better-scroll

2.在需要的頁面引入

import BScroll from 'better-scroll'

3.在data中定義 better-scroll的引數

options: {
 pullDownRefresh: {
 threshold: 50, // 當下拉到超過頂部 50px 時,觸發 pullingDown 事件
 stop: 20 // 重新整理資料的過程中,回彈停留在距離頂部還有 20px 的位置
 },
 pullUpLoad: {
 threshold: -20 // 在上拉到超過底部 20px 時,觸發 pullingUp 事件
 },
// pullDownRefresh: false, //關閉下拉
// pullUpLoad: false, // 關閉上拉
 click: true,
 probeType: 3,
 startY: 0,//歡迎加入全棧開發交流圈一起學習交流:864305860
 scrollbar: true//面向1-3年前端人員
 }//幫助突破技術瓶頸,提升思維能力

4.在template中寫入

<div class="wrapper" ref="wrapper" :scrollbar="options.scrollbar" :startY="options.startY">

5.在methods中寫入方法,我自定義的

load() {
 if (!this.scroll) {
 this.scroll = new BScroll(this.$refs.wrapper, this.options);
 // 上拉
 this.scroll.on('pullingUp', () => {
 // 重新整理資料的過程中,回彈停留在距離頂部還有20px的位置
 this.setData();
 })
 } else {//歡迎加入全棧開發交流圈一起學習交流:864305860
 this.scroll.refresh()//面向1-3年前端人員
 }//幫助突破技術瓶頸,提升思維能力
 },
 setData() {
 this.$nextTick(() => {
 let arr = [1, 2, 3, 'james'];
 this.data = this.data.concat(arr)// 新增資料
 this.scroll.finishPullUp();
 this.pullingDownUp()
 })
 },
pullingDownUp() {
 this.scroll.refresh() //重新計算元素高度
 },

6.在created中載入

this.$nextTick(() => {
 this.load()
 this.setData()
 })

結語

感謝您的觀看,如有不足之處,歡迎批評指正。

原文https://www.toutiao.com/a6624384490800153102/?tt_from=weixin&utm_campaign=client_share&wxshare_count=1&timestamp=1542362579&app=news_article&utm_source=weixin&iid=50616827333&utm_medium=toutiao_ios&group_id=6624384490800153102