遇到的问题:
移动端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