垂直方向Swiper开启自动播放与自动高度时出现异常跳变问题求助
垂直方向Swiper开启自动播放与自动高度时出现异常跳变问题求助
各位大佬好!我最近想用Swiper做一个垂直方向的跑马灯轮播效果,结果碰到了个头疼的问题:自动播放的时候会出现异常跳变,完全达不到想要的平滑效果,想请大家帮忙支支招~
先给大家看看我当前的Swiper配置:
{ loop: true, speed: 5000, allowTouchMove: false, slidesPerView: "auto", spaceBetween: 10, autoHeight: true, direction: "vertical", autoplay: { delay: 0, disableOnInteraction: false, }, };
另外我还特意给swiper的wrapper设置了相关样式,本来是想让自动播放的动画更流畅,结果跳变的问题还是没解决。有没有大佬遇到过类似的情况呀?或者能帮我分析下问题出在哪,该怎么调整呢?
给你几个我自己摸索出来的可能可行的调整方向,你可以试试:
- 先暂时关掉
autoHeight,手动给Swiper容器设置一个固定高度。毕竟垂直方向下,loop循环模式加上自动高度,Swiper可能没办法实时精准计算每张slide的高度,切换时就容易出现跳变 - 调整
speed和autoplay.delay的数值比例,比如把speed调小一点,或者给delay设置一个非0的合理值,避免动画速度和延迟不匹配导致的视觉断层 - 给
swiper-wrapper添加will-change: transform这个CSS属性,让浏览器提前优化动画的渲染性能,说不定能减少跳变 - 可以监听Swiper的
slideChange事件,每次切换slide的时候手动调用swiper.update()方法强制更新高度,看看能不能解决高度计算的问题
备注:内容来源于stack exchange,提问作者Lucas M. Falbo
相关产品推荐
相关产品推荐

