infinity-forge
Version:
81 lines • 3.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = translateTo;
var utils_1 = require("../../shared/utils.js");
function translateTo(translate, speed, runCallbacks, translateBounds, internal) {
var _a;
if (translate === void 0) { translate = 0; }
if (speed === void 0) { speed = this.params.speed; }
if (runCallbacks === void 0) { runCallbacks = true; }
if (translateBounds === void 0) { translateBounds = true; }
var swiper = this;
var params = swiper.params, wrapperEl = swiper.wrapperEl;
if (swiper.animating && params.preventInteractionOnTransition) {
return false;
}
var minTranslate = swiper.minTranslate();
var maxTranslate = swiper.maxTranslate();
var newTranslate;
if (translateBounds && translate > minTranslate)
newTranslate = minTranslate;
else if (translateBounds && translate < maxTranslate)
newTranslate = maxTranslate;
else
newTranslate = translate;
// Update progress
swiper.updateProgress(newTranslate);
if (params.cssMode) {
var isH = swiper.isHorizontal();
if (speed === 0) {
wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;
}
else {
if (!swiper.support.smoothScroll) {
(0, utils_1.animateCSSModeScroll)({ swiper: swiper, targetPosition: -newTranslate, side: isH ? 'left' : 'top' });
return true;
}
wrapperEl.scrollTo((_a = {},
_a[isH ? 'left' : 'top'] = -newTranslate,
_a.behavior = 'smooth',
_a));
}
return true;
}
if (speed === 0) {
swiper.setTransition(0);
swiper.setTranslate(newTranslate);
if (runCallbacks) {
swiper.emit('beforeTransitionStart', speed, internal);
swiper.emit('transitionEnd');
}
}
else {
swiper.setTransition(speed);
swiper.setTranslate(newTranslate);
if (runCallbacks) {
swiper.emit('beforeTransitionStart', speed, internal);
swiper.emit('transitionStart');
}
if (!swiper.animating) {
swiper.animating = true;
if (!swiper.onTranslateToWrapperTransitionEnd) {
swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {
if (!swiper || swiper.destroyed)
return;
if (e.target !== this)
return;
swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
swiper.onTranslateToWrapperTransitionEnd = null;
delete swiper.onTranslateToWrapperTransitionEnd;
swiper.animating = false;
if (runCallbacks) {
swiper.emit('transitionEnd');
}
};
}
swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
}
}
return true;
}
//# sourceMappingURL=translateTo.js.map