uniapp動態(tài)設置swiper圖片高度(親測有效)

需求:uniapp使用swiper組件時,內部圖片高度不統(tǒng)一,組件可以根據圖片高度自適應。

html部分

<swiper class="swiper" @change="changeSwiper" :current="currentIndex" circular autoplay :style="{ height: swiperHeight + 'px' }">
    <swiper-item v-for="(item,index) in 你的圖片數組" :key="index">
        <image :id="'bg'+index" class="bg" :src="圖片地址" mode="aspectFill"></image>
    </swiper-item>
</swiper>

data部分

currentIndex: 0,  //當前索引
swiperHeight: 0,  //滑塊的高度(單位px)

js部分

//一開始獲取到圖片數據時,要延時動態(tài)設置一下
// 初始化輪播圖第一屏高度
setTimeout(()=>{
    this.setSwiperHeight();
 },100)
// 輪播圖切換動態(tài)改變高度
changeSwiper(e) {
  this.currentIndex = e.detail.current;
  //動態(tài)設置swiper的高度,使用nextTick延時設置
  this.$nextTick(() => {
    this.setSwiperHeight();
  });
},
// 設置輪播圖高度
setSwiperHeight() {
    let element = "#bg" + this.currentIndex;
    let query = uni.createSelectorQuery().in(this);
    query.select(element).boundingClientRect();
    query.exec((res) => {
        if (res && res[0]) {
            this.swiperHeight = res[0].height;
        }
    })
},
            

css部分

.bg{
  width: 100%;
}

至此,功能完成,特此記錄!

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容