關(guān)于better-scroll插件的無法滑動(dòng)bug(2021通過插件解決)
better-scroll滾動(dòng)原理

wrapper作為父容器,它的高度會(huì)隨著內(nèi)容的大小而撐高。那么,當(dāng)
content的高度不超過父容器的高度,是不能滾動(dòng)的,而它一旦超過了父容器的高度,我們就可以滾動(dòng)內(nèi)容區(qū)了
BetterScroll 默認(rèn)處理容器(wrapper)的第一個(gè)子元素(content)的滾動(dòng),其它的元素都會(huì)被忽略
所以也給定了如下頁面結(jié)構(gòu)
<div class="wrapper"> <ul class="content"> <li>...</li> <li>...</li> ... </ul> <!-- 這里可以放一些其它的 DOM,但不會(huì)影響滾動(dòng) --> </div>
所以我們?cè)谶@里只說最重要的一點(diǎn)?。?!
因?yàn)?code>圖片需要加載,所以better-scroll的初始化時(shí)機(jī)非常重要,因?yàn)樗诔跏蓟臅r(shí)候,會(huì)計(jì)算父元素和子元素的高度和寬度,如果圖片還沒有加載完成就已經(jīng)開始初始化,那么計(jì)算出的實(shí)際高度和你的真實(shí)高度就會(huì)有大量偏差(網(wǎng)速也會(huì)影響。。。)
這是目前所有使用者會(huì)出現(xiàn)無法滾動(dòng)的最大原因
我前幾天遇到這個(gè)問題,并且better-scroll文檔無法訪問,github上的文檔只有大概使用,找解決方法找了整整一天,網(wǎng)上的各種方法層出不窮,最優(yōu)解:
通過插件:better-scroll/observe-dom
動(dòng)態(tài)計(jì)算 BetterScroll 的可滾動(dòng)高度或者寬度,你并不需要自己在高度或者寬度發(fā)生變化的時(shí)候,手動(dòng)調(diào)用 refresh() 方法。插件通過 MutationObserver 幫你完成了。
如果當(dāng)前你的瀏覽器不支持 MutationObserver,會(huì)降級(jí)使用 setTimeout。
使用
安裝依賴 npm install @better-scroll/observe-dom
import BScroll from '@better-scroll/core'
import ObserveDom from '@better-scroll/observe-dom'
BScroll.use(ObserveDom)
const bs = new BScroll('.wrapper', {
observeDOM: true
})
這個(gè)問題還有很多解決辦法,但網(wǎng)上很多文章講也沒有講清,使用這個(gè)插件就好了
別的解決辦法大概思路就是:監(jiān)聽圖片加載調(diào)用refresh()重新計(jì)算高度
vue用img標(biāo)簽,用
@load="定義一個(gè)方法"監(jiān)聽圖片加載事件,只要圖片加載一個(gè)就會(huì)調(diào)用一次你定義的方法最后在方法中寫入this.scroll.refresh()就可以做到加載一個(gè)圖片刷新一次重新計(jì)算高度,同時(shí)你需要使用防抖函數(shù)避免頻繁的重復(fù)調(diào)用帶來的各種問題
到此這篇關(guān)于(2021通過插件解決)better-scroll插件的無法滑動(dòng)bug的文章就介紹到這了,更多相關(guān)better-scroll插件無法滑動(dòng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序動(dòng)態(tài)設(shè)置圖片大小的方法
這篇文章主要介紹了微信小程序動(dòng)態(tài)設(shè)置圖片大小的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
JavaScript獲取兩個(gè)數(shù)組交集的方法
這篇文章主要介紹了JavaScript獲取兩個(gè)數(shù)組交集的方法,涉及javascript針對(duì)數(shù)組的相關(guān)操作技巧,需要的朋友可以參考下2015-06-06
一篇文章帶你詳細(xì)了解JavaScript數(shù)組
本文是小編給大家特意整理的關(guān)于JavaScript數(shù)組的知識(shí),非常實(shí)用,在面試筆試題中經(jīng)常用得到,有需要的朋友可以參考下2021-09-09
Javascript節(jié)點(diǎn)關(guān)系實(shí)例分析
這篇文章主要介紹了Javascript節(jié)點(diǎn)關(guān)系,實(shí)例分析了javascript操作父子節(jié)點(diǎn)及兄弟節(jié)點(diǎn)的相關(guān)技巧,需要的朋友可以參考下2015-05-05
js+for循環(huán)實(shí)現(xiàn)字符串自動(dòng)轉(zhuǎn)義的代碼(把后面的字符替換前面的字符)
這段代碼是從網(wǎng)上看到的一段不錯(cuò)的代碼,用for命令實(shí)現(xiàn)字符串的轉(zhuǎn)移,而且使用的是for循環(huán)直接將后面的字符替換成前面的字符,這個(gè)邏輯以前沒試過2020-12-12
Javascript 強(qiáng)制類型轉(zhuǎn)換函數(shù)
javascript是弱類型的語言,所以強(qiáng)制類型轉(zhuǎn)換還是比較重要的,下面看一下它的幾個(gè)強(qiáng)制轉(zhuǎn)換的函數(shù)2009-05-05
微信小程序?qū)崿F(xiàn)tab組件切換動(dòng)畫
tab相對(duì)而言用的還是比較多的,但是用起來并沒有難,下面這篇文章主要給大家介紹了關(guān)于微信小程序全局配置之tab的相關(guān)資料,文中通過圖文以及示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10
理解javascript函數(shù)式編程中的閉包(closure)
這篇文章主要幫助大家理解javascript函數(shù)式編程中的閉包(closure)概念,通俗地講, JavaScript 中每個(gè)的函數(shù)都是一個(gè)閉包,感興趣的小伙伴們可以參考一下2016-03-03

