better scroll 實現無縫輪播

2021-08-21 08:44:03 字數 2539 閱讀 6931

better-scroll  適用於解決移動端各種滾動場景,滾動列表、輪播圖等。

better-scroll新版本設定輪播圖有一些變動。

slider.vue:

結構及部分樣式設定:

//插槽位置即輪播圖,在引入主頁面的中間插入

//小圓點採用絕對定位

@import "~common/stylus/variable"

.slider

min-height: 1px //防止文字溢位

.slider-group

position: relative

overflow: hidden

white-space: nowrap

.slider-item

float: left

box-sizing: border-box

overflow: hidden

text-align: center

adisplay: block

width: 100%

overflow: hidden

text-decoration: none

imgdisplay: block

width: 100%

recommend.vue:

其中需要注意,這邊需要控制顯示的時機,是由於slider.vue中設定html的寬度等是在mounted (即已完成模板渲染後執行),而recommend.vue 當還未獲取資料的時候,mounted 已經執行,為了確保元素的存在再渲染,所以新增判斷。

_setsliderwidth(isresize) 

if (this.loop && !isresize)

this.$refs.slidergroup.style.width = width + 'px'        //為元素設定容器的總寬度

},

addclass :(新增類名)

export function hasclass(el, classname) 

export function addclass(el, classname)

let newclass = el.classname.split(' ') //split() 將原本的classname字串按空格分割成陣列

newclass.push(classname)        //將新的classname 新增到上面的陣列中

el.classname = newclass.join(' ')        //join() 以空格為連線符鏈結成class字串

}

拓展:

//刪除class

export function removeclass(el, classname)

let newclass = el.classname.split(' ') //分割class字串為class陣列

let index = newclass.findindex((item)=>)

newclass.splice(index,1) // 刪除索引中的這項

el.classname = newclass.join(' ') //將class陣列以空格為連線符連線成class字串

}

初始化 better-scroll時機,將那些函式在mounted  完成渲染後執行:(*一般初始化better-scroll不成功);

並通過監聽視窗改變事件,解決當視窗改變時,的寬度未發生改變的問題

mounted() 

}, 20) //保證dom被渲染,做了20ms的延時(*為何值為20??* 因為瀏覽器重新整理時間一般為17ms一次)

window.addeventlistener('resize', () =>

this._setsliderwidth(true)

this.slider.refresh()

})

初始化better-slider外掛程式:

_initslider() ,

click: true

})this.slider.on('scrollend', () =>

this.currentindex = pageindex

if (this.autoplay)

})},

新版本的dots沒有改變設定:

_initdots() ,
_play() 

this.timer = settimeout(() => , this.interval)

}

優化: 

1.     及時關閉輪播,有利於記憶體的釋放

destroyed()

better scroll 上拉載入

首先需要乙個使用了bs編寫的列表 肯定是不能有bug的 bs中文文件 this.actscroll new bscroll actbox,pullupload 在初始化配置項裡面新增pullupload配置選項,給定上拉的數值 觸發上拉載入的事件,呼叫getinfo 請求資料 this.actscr...

better scroll滾動區域問題

在首頁時候,使用betterscroll外掛程式的時候,滾動的時候經常會卡頓。better scroll在決定有多少區域可以滾動時,是根據scrollerheight屬性決定的。scrollerheight屬性時根據better scroll的content中的子元件的高度。但是,剛開始在計算scr...

移動端 better scroll基礎

better scroll 是一款重點解決移動端 已支援 pc 各種滾動場景需求的外掛程式 滾動原理 1.與瀏覽器滾動原理一致,父容器高度固定,子元素內容撐開,必須產生滾動條,才能滾動。1.載入外掛程式 2.html內容 3.初始化呼叫bscroll scrollx 型別 boolean 預設值 f...