1 | "use strict";
|
2 |
|
3 | exports.__esModule = true;
|
4 | exports.default = void 0;
|
5 |
|
6 | var _dom = _interopRequireDefault(require("../../utils/dom"));
|
7 |
|
8 | var _utils = require("../../utils/utils");
|
9 |
|
10 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
11 |
|
12 | 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); }
|
13 |
|
14 | var Parallax = {
|
15 | setTransform: function setTransform(el, progress) {
|
16 | var swiper = this;
|
17 | var rtl = swiper.rtl;
|
18 | var $el = (0, _dom.default)(el);
|
19 | var rtlFactor = rtl ? -1 : 1;
|
20 | var p = $el.attr('data-swiper-parallax') || '0';
|
21 | var x = $el.attr('data-swiper-parallax-x');
|
22 | var y = $el.attr('data-swiper-parallax-y');
|
23 | var scale = $el.attr('data-swiper-parallax-scale');
|
24 | var opacity = $el.attr('data-swiper-parallax-opacity');
|
25 |
|
26 | if (x || y) {
|
27 | x = x || '0';
|
28 | y = y || '0';
|
29 | } else if (swiper.isHorizontal()) {
|
30 | x = p;
|
31 | y = '0';
|
32 | } else {
|
33 | y = p;
|
34 | x = '0';
|
35 | }
|
36 |
|
37 | if (x.indexOf('%') >= 0) {
|
38 | x = parseInt(x, 10) * progress * rtlFactor + "%";
|
39 | } else {
|
40 | x = x * progress * rtlFactor + "px";
|
41 | }
|
42 |
|
43 | if (y.indexOf('%') >= 0) {
|
44 | y = parseInt(y, 10) * progress + "%";
|
45 | } else {
|
46 | y = y * progress + "px";
|
47 | }
|
48 |
|
49 | if (typeof opacity !== 'undefined' && opacity !== null) {
|
50 | var currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));
|
51 | $el[0].style.opacity = currentOpacity;
|
52 | }
|
53 |
|
54 | if (typeof scale === 'undefined' || scale === null) {
|
55 | $el.transform("translate3d(" + x + ", " + y + ", 0px)");
|
56 | } else {
|
57 | var currentScale = scale - (scale - 1) * (1 - Math.abs(progress));
|
58 | $el.transform("translate3d(" + x + ", " + y + ", 0px) scale(" + currentScale + ")");
|
59 | }
|
60 | },
|
61 | setTranslate: function setTranslate() {
|
62 | var swiper = this;
|
63 | var $el = swiper.$el,
|
64 | slides = swiper.slides,
|
65 | progress = swiper.progress,
|
66 | snapGrid = swiper.snapGrid;
|
67 | $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {
|
68 | swiper.parallax.setTransform(el, progress);
|
69 | });
|
70 | slides.each(function (slideEl, slideIndex) {
|
71 | var slideProgress = slideEl.progress;
|
72 |
|
73 | if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {
|
74 | slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);
|
75 | }
|
76 |
|
77 | slideProgress = Math.min(Math.max(slideProgress, -1), 1);
|
78 | (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) {
|
79 | swiper.parallax.setTransform(el, slideProgress);
|
80 | });
|
81 | });
|
82 | },
|
83 | setTransition: function setTransition(duration) {
|
84 | if (duration === void 0) {
|
85 | duration = this.params.speed;
|
86 | }
|
87 |
|
88 | var swiper = this;
|
89 | var $el = swiper.$el;
|
90 | $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (parallaxEl) {
|
91 | var $parallaxEl = (0, _dom.default)(parallaxEl);
|
92 | var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;
|
93 | if (duration === 0) parallaxDuration = 0;
|
94 | $parallaxEl.transition(parallaxDuration);
|
95 | });
|
96 | }
|
97 | };
|
98 | var _default = {
|
99 | name: 'parallax',
|
100 | params: {
|
101 | parallax: {
|
102 | enabled: false
|
103 | }
|
104 | },
|
105 | create: function create() {
|
106 | var swiper = this;
|
107 | (0, _utils.bindModuleMethods)(swiper, {
|
108 | parallax: _extends({}, Parallax)
|
109 | });
|
110 | },
|
111 | on: {
|
112 | beforeInit: function beforeInit(swiper) {
|
113 | if (!swiper.params.parallax.enabled) return;
|
114 | swiper.params.watchSlidesProgress = true;
|
115 | swiper.originalParams.watchSlidesProgress = true;
|
116 | },
|
117 | init: function init(swiper) {
|
118 | if (!swiper.params.parallax.enabled) return;
|
119 | swiper.parallax.setTranslate();
|
120 | },
|
121 | setTranslate: function setTranslate(swiper) {
|
122 | if (!swiper.params.parallax.enabled) return;
|
123 | swiper.parallax.setTranslate();
|
124 | },
|
125 | setTransition: function setTransition(swiper, duration) {
|
126 | if (!swiper.params.parallax.enabled) return;
|
127 | swiper.parallax.setTransition(duration);
|
128 | }
|
129 | }
|
130 | };
|
131 | exports.default = _default; |
\ | No newline at end of file |