From 8180a52f386301147dae286994119693f6231202 Mon Sep 17 00:00:00 2001 From: Vladimir Kharlampidi Date: Wed, 30 Aug 2023 13:01:11 +0300 Subject: [PATCH] fix(core): fix loopFix in loop and cssMode fixes #6919 --- src/core/slide/slideNext.mjs | 8 +++++++- src/core/slide/slidePrev.mjs | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/core/slide/slideNext.mjs b/src/core/slide/slideNext.mjs index cadf06f1d..a554307e2 100644 --- a/src/core/slide/slideNext.mjs +++ b/src/core/slide/slideNext.mjs @@ -14,9 +14,15 @@ export default function slideNext(speed = this.params.speed, runCallbacks = true swiper.loopFix({ direction: 'next' }); // eslint-disable-next-line swiper._clientLeft = swiper.wrapperEl.clientLeft; + if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) { + requestAnimationFrame(() => { + swiper.slideTo(swiper.activeIndex + increment); + }); + return true; + } } if (params.rewind && swiper.isEnd) { return swiper.slideTo(0, speed, runCallbacks, internal); } - return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); + return swiper.slideTo(swiper.activeIndex + increment); } diff --git a/src/core/slide/slidePrev.mjs b/src/core/slide/slidePrev.mjs index 29086ee38..ace6d7477 100644 --- a/src/core/slide/slidePrev.mjs +++ b/src/core/slide/slidePrev.mjs @@ -53,6 +53,11 @@ export default function slidePrev(speed = this.params.speed, runCallbacks = true ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; return swiper.slideTo(lastIndex, speed, runCallbacks, internal); + } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) { + requestAnimationFrame(() => { + swiper.slideTo(prevIndex, speed, runCallbacks, internal); + }); + return true; } return swiper.slideTo(prevIndex, speed, runCallbacks, internal); }