溫馨提示×

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

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

vue中怎么實(shí)現(xiàn)移動(dòng)端的scroll滾動(dòng)

發(fā)布時(shí)間:2020-09-28 15:46:20 來(lái)源:億速云 閱讀:147 作者:小新 欄目:web開發(fā)

這篇文章給大家分享的是有關(guān)vue中怎么實(shí)現(xiàn)移動(dòng)端的scroll滾動(dòng)的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。

一、首先安裝安裝

npm install better-scroll --save

二、 并在組件中引用

import BScroll from ‘better-scroll'

template中引用指向?qū)⒁獫L動(dòng)的DOM元素

根據(jù)官方文檔ref屬性的說(shuō)明,我們可以這樣將DOM元素引用

vue中怎么實(shí)現(xiàn)移動(dòng)端的scroll滾動(dòng)

vue中怎么實(shí)現(xiàn)移動(dòng)端的scroll滾動(dòng)

三、 在methods中注冊(cè)_initScroll方法,這個(gè)方法是對(duì)better-scroll的實(shí)例化,并且這個(gè)方法將來(lái)會(huì)在頁(yè)面DOM結(jié)構(gòu)渲染后被執(zhí)行

methods: {
   _initScroll(){
    this.menuScroll = new BScroll(this.$refs.menuWrapper, {})
    this.foodsScroll = new BScroll(this.$refs.foodsWrapper, {})
   }
  }
 }

四、在created()方法中,后臺(tái)數(shù)據(jù)獲取成功之后的回調(diào)中,調(diào)用_initScroll();

Vue 更新數(shù)據(jù)時(shí)是異步的,所以在數(shù)據(jù)未加載完全之前,Bscroll無(wú)法獲取目標(biāo)內(nèi)容的高度,所以會(huì)導(dǎo)致無(wú)法滾動(dòng)的現(xiàn)象

這里一定要注意,數(shù)據(jù)獲取成功后,直接Dom不一定是數(shù)據(jù)獲取之后的渲染,所以要利用this.nextTick()方法,在this.nextTick的回調(diào)中使用_initScroll();

看看官方關(guān)于this.$nextTick()的說(shuō)明

vue中怎么實(shí)現(xiàn)移動(dòng)端的scroll滾動(dòng)

所以我們?cè)陧?xiàng)目中應(yīng)該這樣書寫:

vue中怎么實(shí)現(xiàn)移動(dòng)端的scroll滾動(dòng)

感謝各位的閱讀!關(guān)于vue中怎么實(shí)現(xiàn)移動(dòng)端的scroll滾動(dòng)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

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

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

AI