【小程序】动态计算设置swiper高度

4 篇文章 0 订阅
3 篇文章 1 订阅

需求:

        一个滑动的swiper视图,每个swiper-item的高度不同,需要swiper展示所有内容。

 

遇到的问题:

        小程序中swiper必须设置一个固定高度,但是遇到每一个swiper-item高度不同的情况,只能在swiper层设置一个最大的高度去装载,会出现个别底部留空的情况。

 

解决方案:

        使用query.selectAll计算出每一个swiper-item的高度保存到一个数组,根据swiper的下标去复制swiper高度。此处需要在dom渲染完再去使用selectAll方法

 

实例代码:

<swiper
    class="swiper" 
    :current="current"
    :style="'height:'+swiperHeight[current]+'px'">
    <swiper-item v-for="(item, index) in List" :key="index" class="swiperItem">    		            
        ......
    </swiper-item>
</swiper>

        

data(){
    return{
        current: 0,
        swiperHeight: [],
    }
}

this.$nextTick(function(){
    var query = wx.createSelectorQuery()
    query.selectAll('.swiperItem').boundingClientRect(function (rect) {
        rect.forEach((item,index) => {
            that.swiperHeight.push( item.height + 20 )
        })
    }).exec()
})

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值