1 | import $ from '../../shared/dom.js';
|
2 | export 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;
|
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 |