import $ from '../../../utils/dom';
|
|
export default function (translate = (this && this.translate) || 0) {
|
const swiper = this;
|
const params = swiper.params;
|
|
const { slides, rtlTranslate: rtl } = swiper;
|
|
if (slides.length === 0) return;
|
if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();
|
|
let offsetCenter = -translate;
|
if (rtl) offsetCenter = translate;
|
|
// Visible Slides
|
slides.removeClass(params.slideVisibleClass);
|
|
swiper.visibleSlidesIndexes = [];
|
swiper.visibleSlides = [];
|
|
for (let i = 0; i < slides.length; i += 1) {
|
const slide = slides[i];
|
const slideProgress = (
|
(offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset
|
) / (slide.swiperSlideSize + params.spaceBetween);
|
if (params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) {
|
const slideBefore = -(offsetCenter - slide.swiperSlideOffset);
|
const slideAfter = slideBefore + swiper.slidesSizesGrid[i];
|
const isVisible = (slideBefore >= 0 && slideBefore < swiper.size - 1)
|
|| (slideAfter > 1 && slideAfter <= swiper.size)
|
|| (slideBefore <= 0 && slideAfter >= swiper.size);
|
if (isVisible) {
|
swiper.visibleSlides.push(slide);
|
swiper.visibleSlidesIndexes.push(i);
|
slides.eq(i).addClass(params.slideVisibleClass);
|
}
|
}
|
slide.progress = rtl ? -slideProgress : slideProgress;
|
}
|
swiper.visibleSlides = $(swiper.visibleSlides);
|
}
|