Skip to content

Commit b6692e2

Browse files
committed
fix(core): using loop and slideToClickedSlide / slideToLoop with centeredSlides
fixes #8031
1 parent aa2d243 commit b6692e2

File tree

2 files changed

+4
-16
lines changed

2 files changed

+4
-16
lines changed

src/core/loop/loopFix.mjs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ export default function loopFix({
4545
}
4646

4747
const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;
48-
let loopedSlides = slidesPerGroup;
48+
let loopedSlides = centeredSlides
49+
? Math.max(slidesPerGroup, Math.ceil(slidesPerView / 2))
50+
: slidesPerGroup;
4951

5052
if (loopedSlides % slidesPerGroup !== 0) {
5153
loopedSlides += slidesPerGroup - (loopedSlides % slidesPerGroup);

src/core/slide/slideToClickedSlide.mjs

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,7 @@ export default function slideToClickedSlide() {
1616
if (swiper.animating) return;
1717
realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);
1818
if (params.centeredSlides) {
19-
if (
20-
slideToIndex < swiper.loopedSlides - slidesPerView / 2 ||
21-
slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2
22-
) {
23-
swiper.loopFix();
24-
slideToIndex = swiper.getSlideIndex(
25-
elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0],
26-
);
27-
28-
nextTick(() => {
29-
swiper.slideTo(slideToIndex);
30-
});
31-
} else {
32-
swiper.slideTo(slideToIndex);
33-
}
19+
swiper.slideToLoop(realIndex);
3420
} else if (
3521
slideToIndex > isGrid
3622
? (swiper.slides.length - slidesPerView) / 2 - (swiper.params.grid.rows - 1)

0 commit comments

Comments
 (0)