swiper应用于tab滑动切换时高度不一致问题解决

在移动端h5项目中,使用swiper实现tab滑动切换时,由于每个tab内容长度不一,导致高度不同,切换时出现空白区域。尝试使用swiper的autoHeight属性未能解决,因为内容分页加载。最终通过在切换时动态设置非当前slide的高度为0,并利用setTimeout确保滑动结束再调整高度,成功解决了这个问题。
摘要由CSDN通过智能技术生成

遇到的问题:
移动端h5频道页需要滑动切换tab,于是便使用了swiper,滑动效果很流畅,但是因为每个tab下商卡数量不相同,导致每个swiperSlide的高度都有可能不一样,导致的结果就是在tab1下商卡数量很多时,滑到tab2时会在tab2下面多一大块空白。

解决过程中遇到的问题:
swiper自带了autoHeight属性,如果tab内容是不依赖于接口或者分页的情况应该可以解决。但是我tab下的内容是分页的,每个tab的高度本身就是随着分页的加载越来越高的,用了autoHeight会swiperSlide初始化时高度为0,而且分页加载的时候也不能动态增加高度。

最终解决方式:
在切换swiperSlide时,将除了当前slide以外的slide高度都设为0,这样swiper就会自动变为当前slide的高度,再次切换时再将高度变0的slide高度设为auto:

这里使用的是swiper6,其他版本的swiper应该也可以用这样的方式解决。

            <Swiper
              onSlideChange={
   ({
    realIndex
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值