UNPKG

1.85 kBJavaScriptView Raw
1import $ from '../../shared/dom.js';
2export default function updateSlidesProgress(translate) {
3 if (translate === void 0) {
4 translate = this && this.translate || 0;
5 }
6
7 const swiper = this;
8 const params = swiper.params;
9 const {
10 slides,
11 rtlTranslate: rtl,
12 snapGrid
13 } = swiper;
14 if (slides.length === 0) return;
15 if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();
16 let offsetCenter = -translate;
17 if (rtl) offsetCenter = translate; // Visible Slides
18
19 slides.removeClass(params.slideVisibleClass);
20 swiper.visibleSlidesIndexes = [];
21 swiper.visibleSlides = [];
22
23 for (let i = 0; i < slides.length; i += 1) {
24 const slide = slides[i];
25 let slideOffset = slide.swiperSlideOffset;
26
27 if (params.cssMode && params.centeredSlides) {
28 slideOffset -= slides[0].swiperSlideOffset;
29 }
30
31 const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);
32 const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);
33 const slideBefore = -(offsetCenter - slideOffset);
34 const slideAfter = slideBefore + swiper.slidesSizesGrid[i];
35 const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;
36
37 if (isVisible) {
38 swiper.visibleSlides.push(slide);
39 swiper.visibleSlidesIndexes.push(i);
40 slides.eq(i).addClass(params.slideVisibleClass);
41 }
42
43 slide.progress = rtl ? -slideProgress : slideProgress;
44 slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;
45 }
46
47 swiper.visibleSlides = $(swiper.visibleSlides);
48}
\No newline at end of file