swiper最外层设置了 overflow hidden ,但是子元素有动画或者弹窗需要超出,
swiper 外层 .swiper-container
、swiper-wrapper
、swiper-slide
都存在 position:relative
样式, 直接 子元素absolute 无效
干脆去掉 overflow:hidden
,但这样 swiper 其他本该隐藏切换显示的 swiper-slide
也显示出来了,页面混乱 无效
方案:
放大 swiper-container
的宽度和(或)高度,然后在 swiper-slide
层进行收紧,这样就能将本来会溢出隐藏的目标元素展示出来。
相当于小盒子放不下,就拿个大盒子放,画布太小画不下,就换一个大画布来画。
如下图 红包 超出swiper容器, 父元素 Swiper设置2个 tailwind的类,高度和位置 -top-5 h-20
子元素再还原 高度可以不改, top-5
<Swiper slidesPerView={1} spaceBetween={0} loop={fixedActivitySwiperList?.length > 1} autoHeight={true} direction='vertical' autoplay={{ delay: 3000, reverseDirection: true, disableOnInteraction: false, }} modules={[Autoplay, Pagination, Navigation]} className="-top-5" style={{ height: pxToRem(110), }} > {fixedActivitySwiperList && fixedActivitySwiperList.map((item: any, index: any) => { return ( <SwiperSlide key={index + item.title} className="top-5"> <SlideDom key={index} item={item} index={index} slideClick={slideClick} /> </SwiperSlide> ) })} </Swiper>