Skip to content

Commit 82bcc5c

Browse files
committed
fix(lazy): fixed issue with lazy loading when freeMode stops without momentum
fixes #4274 fixes #4275
1 parent 51fd048 commit 82bcc5c

File tree

3 files changed

+15
-9
lines changed

3 files changed

+15
-9
lines changed

src/components/core/events/onTouchEnd.js

+3
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ export default function onTouchEnd(event) {
231231
});
232232
}
233233
} else {
234+
swiper.emit('_freeModeNoMomentumRelease');
234235
swiper.updateProgress(newPosition);
235236
}
236237

@@ -239,6 +240,8 @@ export default function onTouchEnd(event) {
239240
} else if (params.freeModeSticky) {
240241
swiper.slideToClosest();
241242
return;
243+
} else if (params.freeMode) {
244+
swiper.emit('_freeModeNoMomentumRelease');
242245
}
243246

244247
if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {

src/components/lazy/lazy.js

+1-6
Original file line numberDiff line numberDiff line change
@@ -257,12 +257,7 @@ export default {
257257
swiper.lazy.load();
258258
}
259259
},
260-
resize(swiper) {
261-
if (swiper.params.lazy.enabled) {
262-
swiper.lazy.load();
263-
}
264-
},
265-
scrollbarDragMove(swiper) {
260+
'scrollbarDragMove resize _freeModeNoMomentumRelease': function lazyLoad(swiper) {
266261
if (swiper.params.lazy.enabled) {
267262
swiper.lazy.load();
268263
}

src/types/swiper-events.d.ts

+11-3
Original file line numberDiff line numberDiff line change
@@ -215,27 +215,35 @@ export interface SwiperEvents {
215215
* !INTERNAL: Event will fired right before breakpoint change
216216
*/
217217
_beforeBreakpoint?: (swiper: Swiper, breakpointParams: SwiperOptions) => void;
218+
218219
/**
219220
* !INTERNAL: Event will fired after setting CSS classes on swiper container element
220221
*/
221222
_containerClasses?: (swiper: Swiper, classNames: string) => void;
223+
222224
/**
223-
* INTERNAL: Event will fired after setting CSS classes on swiper slide element
225+
* !INTERNAL: Event will fired after setting CSS classes on swiper slide element
224226
*/
225227
_slideClass?: (swiper: Swiper, el: HTMLElement, classNames: string) => void;
226228

227229
/**
228-
* INTERNAL: Event will fired after setting CSS classes on all swiper slides
230+
* !INTERNAL: Event will fired after setting CSS classes on all swiper slides
229231
*/
230232
_slideClasses?: (
231233
swiper: Swiper,
232234
slides: { el: HTMLElement; classNames: string; index: number }[],
233235
) => void;
234236

235237
/**
236-
* INTERNAL: Event will fired as soon as swiper instance available (before init)
238+
* !INTERNAL: Event will fired as soon as swiper instance available (before init)
237239
*/
238240
_swiper?: (swiper: Swiper) => void;
241+
242+
/**
243+
* !INTERNAL: Event will be fired on free mode touch end (release) and there will no be momentum
244+
*/
245+
_freeModeNoMomentumRelease?: (swiper: Swiper) => void;
246+
239247
/**
240248
* Event will fired on active index change
241249
*/

0 commit comments

Comments
 (0)