first commit
This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.default = void 0;
|
||||
|
||||
var _dom = _interopRequireDefault(require("../../utils/dom"));
|
||||
|
||||
var _utils = require("../../utils/utils");
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
||||
|
||||
var Parallax = {
|
||||
setTransform: function setTransform(el, progress) {
|
||||
var swiper = this;
|
||||
var rtl = swiper.rtl;
|
||||
var $el = (0, _dom.default)(el);
|
||||
var rtlFactor = rtl ? -1 : 1;
|
||||
var p = $el.attr('data-swiper-parallax') || '0';
|
||||
var x = $el.attr('data-swiper-parallax-x');
|
||||
var y = $el.attr('data-swiper-parallax-y');
|
||||
var scale = $el.attr('data-swiper-parallax-scale');
|
||||
var opacity = $el.attr('data-swiper-parallax-opacity');
|
||||
|
||||
if (x || y) {
|
||||
x = x || '0';
|
||||
y = y || '0';
|
||||
} else if (swiper.isHorizontal()) {
|
||||
x = p;
|
||||
y = '0';
|
||||
} else {
|
||||
y = p;
|
||||
x = '0';
|
||||
}
|
||||
|
||||
if (x.indexOf('%') >= 0) {
|
||||
x = parseInt(x, 10) * progress * rtlFactor + "%";
|
||||
} else {
|
||||
x = x * progress * rtlFactor + "px";
|
||||
}
|
||||
|
||||
if (y.indexOf('%') >= 0) {
|
||||
y = parseInt(y, 10) * progress + "%";
|
||||
} else {
|
||||
y = y * progress + "px";
|
||||
}
|
||||
|
||||
if (typeof opacity !== 'undefined' && opacity !== null) {
|
||||
var currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));
|
||||
$el[0].style.opacity = currentOpacity;
|
||||
}
|
||||
|
||||
if (typeof scale === 'undefined' || scale === null) {
|
||||
$el.transform("translate3d(" + x + ", " + y + ", 0px)");
|
||||
} else {
|
||||
var currentScale = scale - (scale - 1) * (1 - Math.abs(progress));
|
||||
$el.transform("translate3d(" + x + ", " + y + ", 0px) scale(" + currentScale + ")");
|
||||
}
|
||||
},
|
||||
setTranslate: function setTranslate() {
|
||||
var swiper = this;
|
||||
var $el = swiper.$el,
|
||||
slides = swiper.slides,
|
||||
progress = swiper.progress,
|
||||
snapGrid = swiper.snapGrid;
|
||||
$el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {
|
||||
swiper.parallax.setTransform(el, progress);
|
||||
});
|
||||
slides.each(function (slideEl, slideIndex) {
|
||||
var slideProgress = slideEl.progress;
|
||||
|
||||
if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {
|
||||
slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);
|
||||
}
|
||||
|
||||
slideProgress = Math.min(Math.max(slideProgress, -1), 1);
|
||||
(0, _dom.default)(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {
|
||||
swiper.parallax.setTransform(el, slideProgress);
|
||||
});
|
||||
});
|
||||
},
|
||||
setTransition: function setTransition(duration) {
|
||||
if (duration === void 0) {
|
||||
duration = this.params.speed;
|
||||
}
|
||||
|
||||
var swiper = this;
|
||||
var $el = swiper.$el;
|
||||
$el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (parallaxEl) {
|
||||
var $parallaxEl = (0, _dom.default)(parallaxEl);
|
||||
var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;
|
||||
if (duration === 0) parallaxDuration = 0;
|
||||
$parallaxEl.transition(parallaxDuration);
|
||||
});
|
||||
}
|
||||
};
|
||||
var _default = {
|
||||
name: 'parallax',
|
||||
params: {
|
||||
parallax: {
|
||||
enabled: false
|
||||
}
|
||||
},
|
||||
create: function create() {
|
||||
var swiper = this;
|
||||
(0, _utils.bindModuleMethods)(swiper, {
|
||||
parallax: _extends({}, Parallax)
|
||||
});
|
||||
},
|
||||
on: {
|
||||
beforeInit: function beforeInit(swiper) {
|
||||
if (!swiper.params.parallax.enabled) return;
|
||||
swiper.params.watchSlidesProgress = true;
|
||||
swiper.originalParams.watchSlidesProgress = true;
|
||||
},
|
||||
init: function init(swiper) {
|
||||
if (!swiper.params.parallax.enabled) return;
|
||||
swiper.parallax.setTranslate();
|
||||
},
|
||||
setTranslate: function setTranslate(swiper) {
|
||||
if (!swiper.params.parallax.enabled) return;
|
||||
swiper.parallax.setTranslate();
|
||||
},
|
||||
setTransition: function setTransition(swiper, duration) {
|
||||
if (!swiper.params.parallax.enabled) return;
|
||||
swiper.parallax.setTransition(duration);
|
||||
}
|
||||
}
|
||||
};
|
||||
exports.default = _default;
|
||||
Reference in New Issue
Block a user