swiper
Version:
Most modern mobile touch slider and framework with hardware accelerated transitions
45 lines (38 loc) • 1.44 kB
JavaScript
exports.__esModule = true;
exports.default = loopFix;
function loopFix() {
var swiper = this;
swiper.emit('beforeLoopFix');
var activeIndex = swiper.activeIndex,
slides = swiper.slides,
loopedSlides = swiper.loopedSlides,
allowSlidePrev = swiper.allowSlidePrev,
allowSlideNext = swiper.allowSlideNext,
snapGrid = swiper.snapGrid,
rtl = swiper.rtlTranslate;
var newIndex;
swiper.allowSlidePrev = true;
swiper.allowSlideNext = true;
var snapTranslate = -snapGrid[activeIndex];
var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding
if (activeIndex < loopedSlides) {
newIndex = slides.length - loopedSlides * 3 + activeIndex;
newIndex += loopedSlides;
var slideChanged = swiper.slideTo(newIndex, 0, false, true);
if (slideChanged && diff !== 0) {
swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);
}
} else if (activeIndex >= slides.length - loopedSlides) {
// Fix For Positive Oversliding
newIndex = -slides.length + activeIndex + loopedSlides;
newIndex += loopedSlides;
var _slideChanged = swiper.slideTo(newIndex, 0, false, true);
if (_slideChanged && diff !== 0) {
swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);
}
}
swiper.allowSlidePrev = allowSlidePrev;
swiper.allowSlideNext = allowSlideNext;
swiper.emit('loopFix');
}
;