PluginProbe
Master Addons for Elementor – Elementor Addons, Widgets, Mega Menu Builder, Popup Builder, Widget Builder & Template Kits / 3.1.9
Master Addons for Elementor – Elementor Addons, Widgets, Mega Menu Builder, Popup Builder, Widget Builder & Template Kits v3.1.9
3.2.2 3.2.3 3.2.1 3.2.0 3.1.9 3.1.8 3.1.7 3.1.6 3.1.5 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 3.0.9 trunk 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.3 1.1.4 1.1.5 All 174 releases
master-addons / assets / js / addons / ma-carousel.js

ma-carousel.js in Master Addons for Elementor – Elementor Addons, Widgets, Mega Menu Builder, Popup Builder, Widget Builder & Template Kits 3.1.9, at assets/js/addons/ma-carousel.js

122 lines 6.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function(){
2 //#region dev/js/addons/free/ma-carousel.js
3 /**
4 * Master Addons - Carousel Helper
5 *
6 * Shared carousel functionality used by multiple widgets
7 */
8 var $ = jQuery;
9 function MA_Carousel($swiper, settings) {
10 var $slides = $swiper.find(".jltma-swiper__slide"), elementorBreakpoints = elementorFrontend.config.breakpoints, swiperInstance = $swiper.data("swiper"), swiperArgs = {
11 autoHeight: settings.element.autoHeight || false,
12 direction: settings.element.direction || settings.default.direction,
13 effect: settings.element.effect || settings.default.effect,
14 slidesPerView: settings.default.slidesPerView,
15 slidesPerColumn: settings.default.slidesPerColumn,
16 slidesPerColumnFill: "row",
17 slidesPerGroup: settings.default.slidesPerGroup,
18 spaceBetween: settings.default.spaceBetween,
19 pagination: {},
20 navigation: {},
21 autoplay: settings.element.autoplay || false,
22 grabCursor: true,
23 watchSlidesProgress: true,
24 watchSlidesVisibility: true
25 };
26 if (settings.default.breakpoints) {
27 swiperArgs.breakpoints = {};
28 swiperArgs.breakpoints[elementorBreakpoints.md] = settings.default.breakpoints.tablet;
29 swiperArgs.breakpoints[elementorBreakpoints.lg] = settings.default.breakpoints.desktop;
30 }
31 if (!elementorFrontend.isEditMode()) {
32 if (!settings.element.freeMode) {
33 swiperArgs.observer = true;
34 swiperArgs.observeParents = true;
35 swiperArgs.observeSlideChildren = true;
36 }
37 } else {
38 swiperArgs.observer = true;
39 swiperArgs.observeParents = true;
40 swiperArgs.observeSlideChildren = true;
41 }
42 MA_Carousel.init = function() {
43 if (swiperInstance) {
44 MA_Carousel.destroy();
45 return;
46 }
47 if (swiperArgs.breakpoints) {
48 if (settings.element.breakpoints.desktop.slidesPerView) swiperArgs.breakpoints[elementorBreakpoints.lg].slidesPerView = settings.stretch ? Math.min($slides.length, +settings.element.breakpoints.desktop.slidesPerView || 3) : +settings.element.breakpoints.desktop.slidesPerView || 3;
49 if (settings.element.breakpoints.tablet.slidesPerView) swiperArgs.breakpoints[elementorBreakpoints.md].slidesPerView = settings.stretch ? Math.min($slides.length, +settings.element.breakpoints.tablet.slidesPerView || 2) : +settings.element.breakpoints.tablet.slidesPerView || 2;
50 }
51 if (settings.element.slidesPerView) swiperArgs.slidesPerView = settings.stretch ? Math.min($slides.length, +settings.element.slidesPerView || 1) : +settings.element.slidesPerView || 1;
52 if (swiperArgs.breakpoints) {
53 if (settings.element.breakpoints.desktop.slidesPerGroup) swiperArgs.breakpoints[elementorBreakpoints.lg].slidesPerGroup = Math.min($slides.length, +settings.element.breakpoints.desktop.slidesPerGroup || 3);
54 if (settings.element.breakpoints.tablet.slidesPerGroup) swiperArgs.breakpoints[elementorBreakpoints.md].slidesPerGroup = Math.min($slides.length, +settings.element.breakpoints.tablet.slidesPerGroup || 2);
55 }
56 if (settings.element.slidesPerGroup) swiperArgs.slidesPerGroup = Math.min($slides.length, +settings.element.slidesPerGroup || 1);
57 if (swiperArgs.breakpoints) {
58 if (settings.element.breakpoints.desktop.slidesPerColumn) swiperArgs.breakpoints[elementorBreakpoints.lg].slidesPerColumn = settings.element.breakpoints.desktop.slidesPerColumn;
59 if (settings.element.breakpoints.tablet.slidesPerColumn) swiperArgs.breakpoints[elementorBreakpoints.md].slidesPerColumn = settings.element.breakpoints.tablet.slidesPerColumn;
60 }
61 if (settings.element.slidesPerColumn) swiperArgs.slidesPerColumn = settings.element.slidesPerColumn;
62 if (swiperArgs.breakpoints) {
63 swiperArgs.breakpoints[elementorBreakpoints.lg].spaceBetween = settings.element.breakpoints.desktop.spaceBetween || 0;
64 swiperArgs.breakpoints[elementorBreakpoints.md].spaceBetween = settings.element.breakpoints.tablet.spaceBetween || 0;
65 }
66 if (settings.element.spaceBetween) swiperArgs.spaceBetween = settings.element.spaceBetween || 0;
67 if (settings.element.slidesPerColumnFill) swiperArgs.slidesPerColumnFill = settings.element.slidesPerColumnFill;
68 if (settings.element.arrows) {
69 swiperArgs.navigation.disabledClass = "jltma-swiper__button--disabled";
70 var $prevButton = settings.scope.find(settings.element.arrowPrev), $nextButton = settings.scope.find(settings.element.arrowNext);
71 if ($prevButton.length && $nextButton.length) {
72 var arrowPrev = settings.element.arrowPrev + "-" + settings.id, arrowNext = settings.element.arrowNext + "-" + settings.id;
73 $prevButton.addClass(arrowPrev.replace(".", ""));
74 $nextButton.addClass(arrowNext.replace(".", ""));
75 swiperArgs.navigation.prevEl = arrowPrev;
76 swiperArgs.navigation.nextEl = arrowNext;
77 }
78 }
79 if (settings.element.pagination) {
80 swiperArgs.pagination.el = ".jltma-swiper__pagination-" + settings.id;
81 swiperArgs.pagination.type = settings.element.paginationType;
82 if (settings.element.paginationClickable) swiperArgs.pagination.clickable = true;
83 }
84 if (settings.element.loop) swiperArgs.loop = true;
85 if (swiperArgs.autoplay && (settings.element.autoplaySpeed || settings.element.disableOnInteraction)) {
86 swiperArgs.autoplay = {};
87 if (settings.element.autoplaySpeed) swiperArgs.autoplay.delay = settings.element.autoplaySpeed;
88 if (settings.element.autoplaySpeed) swiperArgs.autoplay.disableOnInteraction = settings.element.disableOnInteraction;
89 }
90 if (settings.element.speed) swiperArgs.speed = settings.element.speed;
91 if (settings.element.resistance) swiperArgs.resistanceRatio = 1 - settings.element.resistance;
92 if (settings.element.freeMode) {
93 swiperArgs.freeMode = true;
94 swiperArgs.freeModeSticky = settings.element.freeModeSticky;
95 swiperArgs.freeModeMomentum = settings.element.freeModeMomentum;
96 swiperArgs.freeModeMomentumBounce = settings.element.freeModeMomentumBounce;
97 if (settings.element.freeModeMomentumRatio) swiperArgs.freeModeMomentumRatio = settings.element.freeModeMomentumRatio;
98 if (settings.element.freeModeMomentumVelocityRatio) swiperArgs.freeModeMomentumVelocityRatio = settings.element.freeModeMomentumVelocityRatio;
99 if (settings.element.freeModeMomentumBounceRatio) swiperArgs.freeModeMomentumBounceRatio = settings.element.freeModeMomentumBounceRatio;
100 }
101 return swiperArgs;
102 };
103 MA_Carousel.onAfterInit = function($swiper, swiper, settings) {
104 if ("undefined" == typeof settings || "undefined" == typeof swiper) return;
105 if (settings.element.stopOnHover) {
106 $swiper.on("mouseover", function() {
107 swiper.autoplay.stop();
108 });
109 $swiper.on("mouseout", function() {
110 swiper.autoplay.start();
111 });
112 }
113 if (settings.element.slideChangeTriggerResize) swiper.on("slideChange", function() {
114 $(window).trigger("resize");
115 });
116 $swiper.data("swiper", swiper);
117 };
118 return MA_Carousel.init();
119 }
120 //#endregion
121 })();
122