Swiper 在 vertical 模式下 autoHeight 失效的问题,导致页面出现多余的空白高度,网上找了很多方法都无效,我直接暴力更改。
javascript
<Swiper
className='index-swiper'
direction={'vertical'}
mousewheel={true}
centeredSlides={true}
autoHeight={true}
slidesPerView="auto" // 这里 auto
observeParents={true}
observer={true}
modules={[Mousewheel]}
onSlideChange={(swiper) => {
if(swiper.activeIndex == 5) { // 我的item有6条,取最后有问题的一条
const dom = document.getElementsByClassName('swiper-wrapper')[0]; // 获取到 transform 的元素
const y = (swiper.height - (swiper as any).slidesSizesGrid[swiper.activeIndex]) / 2 + 'px'; // 具体 translate 数值根据计算出来的结果而定。
(dom as any).style.transform += `translateY(${y})` // 暴力更改
}
}}
>
<SwiperSlide><Video></Video></SwiperSlide>
<SwiperSlide><ModelDisplay></ModelDisplay></SwiperSlide>
<SwiperSlide><Introduction></Introduction></SwiperSlide>
<SwiperSlide><Appointment></Appointment></SwiperSlide>
<SwiperSlide><ServiceSupport></ServiceSupport></SwiperSlide>
<SwiperSlide><Footer></Footer></SwiperSlide>
</Swiper>