Swiper.js右滑跳1张漏下一张,左滑正常的技术问题
解决Swiper右滑跳过幻灯片的问题
针对你遇到的右滑跳过幻灯片(左滑正常)的问题,核心原因是**slidesPerView设为小数时,Swiper默认的slidesPerGroup会自动匹配小数数值,导致循环滑动的步长计算异常**。结合你需要保留slidesPerView:1.3的需求,可通过以下修改修复:
- 添加
slidesPerGroup: 1,强制每次滑动切换1个幻灯片 - 保留现有
centeredSlides: true和loopFillGroupWithBlank配置,确保幻灯片视觉效果和循环逻辑正常
修改后的完整配置代码:
new Swiper("#swiper-pricing", { slidesPerView: 1.3, spaceBetween: 30, centeredSlides: true, loop: true, slidesPerGroup: 1, // 新增:强制每次滑动仅切换1个幻灯片 keyboard: { enabled: true, }, autoplay: { delay: 5000, }, loopFillGroupWithBlank: true, a11y: { prevSlideMessage: 'Previous slide', nextSlideMessage: 'Next slide', }, navigation: { nextEl: "#nav-right", prevEl: "#nav-left" }, pagination: { el: "#swiper-pricing .swiper-custom-pagination", clickable: true, }, })
补充说明
当slidesPerView为非整数时,Swiper会自动将slidesPerGroup设为与slidesPerView相同的数值,这会让循环模式下的右滑步长计算出现偏差(左滑的步长逻辑不受此影响)。手动指定slidesPerGroup:1后,无论slidesPerView是多少,每次滑动都会严格切换单个幻灯片,同时保留你需要的“部分显示相邻幻灯片”的视觉效果。
另外,确认你的幻灯片数量至少为3个(循环模式的最低要求),避免loopFillGroupWithBlank生成过多空白幻灯片干扰滑动逻辑。
内容的提问来源于stack exchange,提问作者Himjyoti Sarma
相关产品推荐
相关产品推荐

