UNPKG

swiper

Version:

Most modern mobile touch slider and framework with hardware accelerated transitions

51 lines (42 loc) 1.56 kB
export default function updateAutoHeight(speed) { var swiper = this; var activeSlides = []; var isVirtual = swiper.virtual && swiper.params.virtual.enabled; var newHeight = 0; var i; if (typeof speed === 'number') { swiper.setTransition(speed); } else if (speed === true) { swiper.setTransition(swiper.params.speed); } var getSlideByIndex = function getSlideByIndex(index) { if (isVirtual) { return swiper.slides.filter(function (el) { return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index; })[0]; } return swiper.slides.eq(index)[0]; }; // Find slides currently in view if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { if (swiper.params.centeredSlides) { swiper.visibleSlides.each(function (slide) { activeSlides.push(slide); }); } else { for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { var index = swiper.activeIndex + i; if (index > swiper.slides.length && !isVirtual) break; activeSlides.push(getSlideByIndex(index)); } } } else { activeSlides.push(getSlideByIndex(swiper.activeIndex)); } // Find new height from highest slide in view for (i = 0; i < activeSlides.length; i += 1) { if (typeof activeSlides[i] !== 'undefined') { var height = activeSlides[i].offsetHeight; newHeight = height > newHeight ? height : newHeight; } } // Update Height if (newHeight) swiper.$wrapperEl.css('height', newHeight + "px"); }