infinity-forge
Version:
62 lines • 2.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = updateSlidesProgress;
var toggleSlideClasses = function (slideEl, condition, className) {
if (condition && !slideEl.classList.contains(className)) {
slideEl.classList.add(className);
}
else if (!condition && slideEl.classList.contains(className)) {
slideEl.classList.remove(className);
}
};
function updateSlidesProgress(translate) {
if (translate === void 0) { translate = (this && this.translate) || 0; }
var swiper = this;
var params = swiper.params;
var slides = swiper.slides, rtl = swiper.rtlTranslate, snapGrid = swiper.snapGrid;
if (slides.length === 0)
return;
if (typeof slides[0].swiperSlideOffset === 'undefined')
swiper.updateSlidesOffset();
var offsetCenter = -translate;
if (rtl)
offsetCenter = translate;
swiper.visibleSlidesIndexes = [];
swiper.visibleSlides = [];
var spaceBetween = params.spaceBetween;
if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiper.size;
}
else if (typeof spaceBetween === 'string') {
spaceBetween = parseFloat(spaceBetween);
}
for (var i = 0; i < slides.length; i += 1) {
var slide = slides[i];
var slideOffset = slide.swiperSlideOffset;
if (params.cssMode && params.centeredSlides) {
slideOffset -= slides[0].swiperSlideOffset;
}
var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) /
(slide.swiperSlideSize + spaceBetween);
var originalSlideProgress = (offsetCenter -
snapGrid[0] +
(params.centeredSlides ? swiper.minTranslate() : 0) -
slideOffset) /
(slide.swiperSlideSize + spaceBetween);
var slideBefore = -(offsetCenter - slideOffset);
var slideAfter = slideBefore + swiper.slidesSizesGrid[i];
var isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];
var 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);
}
toggleSlideClasses(slide, isVisible, params.slideVisibleClass);
toggleSlideClasses(slide, isFullyVisible, params.slideFullyVisibleClass);
slide.progress = rtl ? -slideProgress : slideProgress;
slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;
}
}
//# sourceMappingURL=updateSlidesProgress.js.map