From 994771033e1151715183010765a4a430870b40f1 Mon Sep 17 00:00:00 2001 From: drdah123 <108929184+drdah123@users.noreply.github.com> Date: Fri, 10 Mar 2023 10:49:13 +0300 Subject: [PATCH 1/4] fix #6460 for margin-right --- src/core/update/updateSlides.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/core/update/updateSlides.js b/src/core/update/updateSlides.js index 079c549de..1ff6c4e05 100644 --- a/src/core/update/updateSlides.js +++ b/src/core/update/updateSlides.js @@ -67,12 +67,12 @@ export default function updateSlides() { // reset margins slides.forEach((slideEl) => { if (rtl) { - slideEl.style.marginLeft = ''; + slideEl.style.marginLeft = '0'; } else { - slideEl.style.marginRight = ''; + slideEl.style.marginRight = '0'; } - slideEl.style.marginBottom = ''; - slideEl.style.marginTop = ''; + slideEl.style.marginBottom = '0'; + slideEl.style.marginTop = '0'; }); // reset cssMode offsets From 132de3819253606bd8c837729c9c7a934cd0727c Mon Sep 17 00:00:00 2001 From: drdah123 <108929184+drdah123@users.noreply.github.com> Date: Fri, 10 Mar 2023 10:56:07 +0300 Subject: [PATCH 2/4] s --- src/core/update/updateSlides.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/core/update/updateSlides.js b/src/core/update/updateSlides.js index 1ff6c4e05..079c549de 100644 --- a/src/core/update/updateSlides.js +++ b/src/core/update/updateSlides.js @@ -67,12 +67,12 @@ export default function updateSlides() { // reset margins slides.forEach((slideEl) => { if (rtl) { - slideEl.style.marginLeft = '0'; + slideEl.style.marginLeft = ''; } else { - slideEl.style.marginRight = '0'; + slideEl.style.marginRight = ''; } - slideEl.style.marginBottom = '0'; - slideEl.style.marginTop = '0'; + slideEl.style.marginBottom = ''; + slideEl.style.marginTop = ''; }); // reset cssMode offsets From 5f579b1e7d48849d4f57241f3f3d7da854e4946e Mon Sep 17 00:00:00 2001 From: drdah123 <108929184+drdah123@users.noreply.github.com> Date: Fri, 10 Mar 2023 10:57:40 +0300 Subject: [PATCH 3/4] fix #6460 for margin-right --- src/core/update/updateSlides.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/core/update/updateSlides.js b/src/core/update/updateSlides.js index 079c549de..1ff6c4e05 100644 --- a/src/core/update/updateSlides.js +++ b/src/core/update/updateSlides.js @@ -67,12 +67,12 @@ export default function updateSlides() { // reset margins slides.forEach((slideEl) => { if (rtl) { - slideEl.style.marginLeft = ''; + slideEl.style.marginLeft = '0'; } else { - slideEl.style.marginRight = ''; + slideEl.style.marginRight = '0'; } - slideEl.style.marginBottom = ''; - slideEl.style.marginTop = ''; + slideEl.style.marginBottom = '0'; + slideEl.style.marginTop = '0'; }); // reset cssMode offsets From 0a5905db1f7dfc93c9131b1921d72a2381189f01 Mon Sep 17 00:00:00 2001 From: drdah123 <108929184+drdah123@users.noreply.github.com> Date: Sun, 12 Mar 2023 12:26:59 +0300 Subject: [PATCH 4/4] fix #6460 pagination last slides with loop --- src/core/slide/slideTo.js | 8 +++++++- src/core/slide/slideToLoop.js | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/core/slide/slideTo.js b/src/core/slide/slideTo.js index 5c14aa795..c6caac01f 100644 --- a/src/core/slide/slideTo.js +++ b/src/core/slide/slideTo.js @@ -36,7 +36,13 @@ export default function slideTo( const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex); let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup); if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; - + const slidesPerView = swiper.passedParams.slidesPerView; + if (swiper.params.loop && slidesPerView > 1 && snapGrid.length < swiper.slides.length) { + while (swiper.slides.length > snapGrid.length) { + snapGrid.push(snapGrid[snapGrid.length - 1] + swiper.size / slidesPerView); + } + snapIndex = snapGrid.length; + } const translate = -snapGrid[snapIndex]; // Normalize slideIndex if (params.normalizeSlideIndex) { diff --git a/src/core/slide/slideToLoop.js b/src/core/slide/slideToLoop.js index 028b12413..48fba0b97 100644 --- a/src/core/slide/slideToLoop.js +++ b/src/core/slide/slideToLoop.js @@ -13,6 +13,7 @@ export default function slideToLoop( } const swiper = this; + const slidesPerView = swiper.passedParams.slidesPerView; let newIndex = index; if (swiper.params.loop) { if (swiper.virtual && swiper.params.virtual.enabled) { @@ -24,6 +25,9 @@ export default function slideToLoop( (slideEl) => slideEl.getAttribute('data-swiper-slide-index') * 1 === newIndex, )[0], ); + if (slidesPerView > 1 && swiper.slides.length < newIndex + slidesPerView) { + setTimeout(() => swiper.loopFix({ direction: 'next' }), speed); + } } }