UNPKG

swiper

Version:

Most modern mobile touch slider and framework with hardware accelerated transitions

58 lines (47 loc) 2.11 kB
import Utils from '../../../utils/utils'; export default function () { const swiper = this; const { activeIndex, initialized, loopedSlides = 0, params, } = swiper; const breakpoints = params.breakpoints; if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return; // Set breakpoint for window width and update parameters const breakpoint = swiper.getBreakpoint(breakpoints); if (breakpoint && swiper.currentBreakpoint !== breakpoint) { const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined; if (breakpointOnlyParams) { ['slidesPerView', 'spaceBetween', 'slidesPerGroup'].forEach((param) => { const paramValue = breakpointOnlyParams[param]; if (typeof paramValue === 'undefined') return; if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) { breakpointOnlyParams[param] = 'auto'; } else if (param === 'slidesPerView') { breakpointOnlyParams[param] = parseFloat(paramValue); } else { breakpointOnlyParams[param] = parseInt(paramValue, 10); } }); } const breakpointParams = breakpointOnlyParams || swiper.originalParams; const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction; const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged); if (directionChanged && initialized) { swiper.changeDirection(); } Utils.extend(swiper.params, breakpointParams); Utils.extend(swiper, { allowTouchMove: swiper.params.allowTouchMove, allowSlideNext: swiper.params.allowSlideNext, allowSlidePrev: swiper.params.allowSlidePrev, }); swiper.currentBreakpoint = breakpoint; if (needsReLoop && initialized) { swiper.loopDestroy(); swiper.loopCreate(); swiper.updateSlides(); swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false); } swiper.emit('breakpoint', breakpointParams); } }