From 8ccb08ef1c1adcb4ff53f91bf494a0bd221d5735 Mon Sep 17 00:00:00 2001 From: Vladimir Kharlampidi Date: Mon, 13 May 2024 11:46:47 +0300 Subject: [PATCH] fix(autoplay): keep 0 transition on touchmove with 0 timeout delay fixes #7515 --- src/core/events/onTouchMove.mjs | 3 +++ src/modules/autoplay/autoplay.mjs | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/core/events/onTouchMove.mjs b/src/core/events/onTouchMove.mjs index d23a917f3..2e9e39e73 100644 --- a/src/core/events/onTouchMove.mjs +++ b/src/core/events/onTouchMove.mjs @@ -174,6 +174,9 @@ export default function onTouchMove(event) { const evt = new window.CustomEvent('transitionend', { bubbles: true, cancelable: true, + detail: { + bySwiperTouchMove: true, + }, }); swiper.wrapperEl.dispatchEvent(evt); } diff --git a/src/modules/autoplay/autoplay.mjs b/src/modules/autoplay/autoplay.mjs index 2df9478b5..707d59fac 100644 --- a/src/modules/autoplay/autoplay.mjs +++ b/src/modules/autoplay/autoplay.mjs @@ -37,8 +37,9 @@ export default function Autoplay({ swiper, extendParams, on, emit, params }) { function onTransitionEnd(e) { if (!swiper || swiper.destroyed || !swiper.wrapperEl) return; if (e.target !== swiper.wrapperEl) return; + swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd); - if (pausedByPointerEnter) { + if (pausedByPointerEnter || (e.detail && e.detail.bySwiperTouchMove)) { return; } resume();