Skip to content

Commit f998115

Browse files
committed
fix(core): fix loop when slidesPerGroup is not even to number of slides
fixes #6412
1 parent 7883408 commit f998115

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/core/loop/loopFix.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,16 @@ export default function loopFix({
6262
let slidesAppended = 0;
6363
// prepend last slides before start
6464
if (activeSlideIndex < loopedSlides) {
65-
slidesPrepended = loopedSlides - activeSlideIndex;
65+
slidesPrepended = Math.max(loopedSlides - activeSlideIndex, params.slidesPerGroup);
6666
for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) {
6767
const index = i - Math.floor(i / slides.length) * slides.length;
6868
prependSlidesIndexes.push(slides.length - index - 1);
6969
}
7070
} else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) {
71-
slidesAppended = activeSlideIndex - (swiper.slides.length - loopedSlides * 2);
71+
slidesAppended = Math.max(
72+
activeSlideIndex - (swiper.slides.length - loopedSlides * 2),
73+
params.slidesPerGroup,
74+
);
7275
for (let i = 0; i < slidesAppended; i += 1) {
7376
const index = i - Math.floor(i / slides.length) * slides.length;
7477
appendSlidesIndexes.push(index);
@@ -85,6 +88,7 @@ export default function loopFix({
8588
slidesEl.append(swiper.slides[index]);
8689
});
8790
}
91+
8892
swiper.recalcSlides();
8993
if (params.watchSlidesProgress) {
9094
swiper.updateSlidesOffset();

0 commit comments

Comments
 (0)