From 5080d9569fc1ac77c0cb01812567f8035cc780bb Mon Sep 17 00:00:00 2001 From: Vladimir Kharlampidi Date: Wed, 18 Oct 2023 17:46:55 +0300 Subject: [PATCH] fix(autoplay): fix pauseOnPointerEnter if hovered during transition fixes #7107 --- src/modules/autoplay/autoplay.mjs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/modules/autoplay/autoplay.mjs b/src/modules/autoplay/autoplay.mjs index 18853fd3a..2df9478b5 100644 --- a/src/modules/autoplay/autoplay.mjs +++ b/src/modules/autoplay/autoplay.mjs @@ -32,11 +32,15 @@ export default function Autoplay({ swiper, extendParams, on, emit, params }) { let touchStartTimeout; let slideChanged; let pausedByInteraction; + let pausedByPointerEnter; function onTransitionEnd(e) { if (!swiper || swiper.destroyed || !swiper.wrapperEl) return; if (e.target !== swiper.wrapperEl) return; swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd); + if (pausedByPointerEnter) { + return; + } resume(); } @@ -212,12 +216,14 @@ export default function Autoplay({ swiper, extendParams, on, emit, params }) { const onPointerEnter = (e) => { if (e.pointerType !== 'mouse') return; pausedByInteraction = true; + pausedByPointerEnter = true; if (swiper.animating || swiper.autoplay.paused) return; pause(true); }; const onPointerLeave = (e) => { if (e.pointerType !== 'mouse') return; + pausedByPointerEnter = false; if (swiper.autoplay.paused) { resume(); }