Skip to content

Commit 5abdbfd

Browse files
committed
fix(virtual): fix when Element not swiping in Safari
fixes #7679
1 parent a3fee36 commit 5abdbfd

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/core/slide/slideTo.mjs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { getBrowser } from '../../shared/get-browser.mjs';
12
import { animateCSSModeScroll } from '../../shared/utils.mjs';
23

34
export default function slideTo(index = 0, speed, runCallbacks = true, internal, initial) {
@@ -151,6 +152,12 @@ export default function slideTo(index = 0, speed, runCallbacks = true, internal,
151152
}
152153
return true;
153154
}
155+
156+
const browser = getBrowser();
157+
const isSafari = browser.isSafari;
158+
if (isVirtual && !initial && isSafari && swiper.isElement) {
159+
swiper.virtual.update(false, false, slideIndex);
160+
}
154161
swiper.setTransition(speed);
155162
swiper.setTranslate(translate);
156163
swiper.updateActiveIndex(slideIndex);

src/modules/virtual/virtual.mjs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export default function Virtual({ swiper, extendParams, on, emit }) {
5858
return slideEl;
5959
}
6060

61-
function update(force, beforeInit) {
61+
function update(force, beforeInit, forceActiveIndex) {
6262
const {
6363
slidesPerView,
6464
slidesPerGroup,
@@ -81,7 +81,8 @@ export default function Virtual({ swiper, extendParams, on, emit }) {
8181
swiper.updateActiveIndex();
8282
}
8383

84-
const activeIndex = swiper.activeIndex || 0;
84+
const activeIndex =
85+
typeof forceActiveIndex === 'undefined' ? swiper.activeIndex || 0 : forceActiveIndex;
8586

8687
let offsetProp;
8788
if (swiper.rtlTranslate) offsetProp = 'right';

0 commit comments

Comments
 (0)