溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

better-scroll方法怎么在vue2中使用

發(fā)布時(shí)間:2021-03-25 17:42:32 來源:億速云 閱讀:255 作者:Leah 欄目:web開發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)better-scroll方法怎么在vue2中使用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

一:html部分

<div class="example" ref="divScroll">
  <div>
    <p>內(nèi)容1</p>
    <p>內(nèi)容2</p>
    <ul>
       <li>list1</li>
       <li>list2</li>
    <ul>
  </div>
</div>

【注】

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

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

二: css部分

.example
 width: 100%
 position: absolute
 top: 174px
 bottom: 48px
 left: 0
 overflow: hidden

【注】 1. 這里只是舉例,并不是一定要這樣寫。

    2. 首先將 獲取到的加了 ref 的div 的 高度固定, 可以設(shè)置定位, 也可以設(shè)置  height, max-height...

    3. 加 overflow: hidden 。

三: js 部分

首先 引入 better-scroll:

import BScroll from 'better-scroll';

1: 使用 mounted() 函數(shù)

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

2.使用 created() 函數(shù)

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

【注】 1.使用created 函數(shù) 要異步執(zhí)行(此時(shí)html 尚未渲染完成)。

    2. mounted函數(shù) 無需異步執(zhí)行(mounted 函數(shù)在html渲染完成后觸發(fā))。

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

1.用npm 安裝好 better-scroll

npm install--save better-scroll

2.在需要的頁面引入

import BScroll from 'better-scroll'

3.在data中定義 better-scroll的參數(shù)

options: {
     pullDownRefresh: {
      threshold: 50, // 當(dāng)下拉到超過頂部 50px 時(shí),觸發(fā) pullingDown 事件
      stop: 20 // 刷新數(shù)據(jù)的過程中,回彈停留在距離頂部還有 20px 的位置
     },
     pullUpLoad: {
      threshold: -20 // 在上拉到超過底部 20px 時(shí),觸發(fā) pullingUp 事件
     },
//     pullDownRefresh: false, //關(guān)閉下拉
//     pullUpLoad: false, // 關(guān)閉上拉
     click: true,
     probeType: 3,
     startY: 0,
     scrollbar: true
    }

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', () => {
      // 刷新數(shù)據(jù)的過程中,回彈停留在距離頂部還有20px的位置
      this.setData();
     })
    } else {
     this.scroll.refresh()
    }
   },
 setData() {
    this.$nextTick(() => {
     let arr = [1, 2, 3, 'james'];
     this.data = this.data.concat(arr)// 添加數(shù)據(jù)
     this.scroll.finishPullUp();
     this.pullingDownUp()
    })
   },
pullingDownUp() {
    this.scroll.refresh() //重新計(jì)算元素高度
   },

6.在created中加載

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

關(guān)于better-scroll方法怎么在vue2中使用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI