( function( $, window ) { 'use strict'; $(window).on('elementor/frontend/init', function (){ function WglSectionParallax( $scope ){ $scope.WglSectionParallaxInit(); $scope.WglSectionShapeDividerInit(); } window.elementorFrontend.hooks.addAction( 'frontend/element_ready/section', WglSectionParallax); }); // Add Wgl Parallax Section $.fn.WglSectionParallaxInit = function( options ){ var defaults = {}; return this.each(function( ) { var self = $(this), wglParallax = { editorMode: window.elementorFrontend.isEditMode(), itemId: $(this).data('id'), options: false, globalVars: 'add_background_animation', backEndVars: null, items: [], }; var init = function() { setParallaxItem(); }, setParallaxItem = function(){ var settings; var checkEnabledParallax = parallaxEffectEnabled(); if(!checkEnabledParallax){ return; } if ( ! wglParallax.editorMode ) { settings = buildFrontParallax(); } else { settings = buildBackendParallax(); } if ( ! settings ) { return; } build( settings ); hideMobile(); }, parallaxEffectEnabled = function(){ var settings = {}; if ( ! wglParallax.editorMode ) { settings = wgl_parallax_settings[0][wglParallax.itemId]; if(!settings){ return; } if(!settings.hasOwnProperty(wglParallax.globalVars) || !settings[wglParallax.globalVars]){ return; } }else{ if(!window.elementor.elements){ return; } if(!window.elementor.elements.models){ return; } window.elementor.elements.models.forEach(function( value ){ if ( wglParallax.itemId == value.id ) { wglParallax.backEndVars = value.attributes.settings.attributes; } }); if(!wglParallax.backEndVars){ return; } if(!wglParallax.backEndVars.hasOwnProperty(wglParallax.globalVars) || !wglParallax.backEndVars[wglParallax.globalVars]){ return; } settings = wglParallax.backEndVars; } return settings; }, buildFrontParallax = function() { var settings = wgl_parallax_settings[0][wglParallax.itemId]; settings = settings['items_parallax']; return settings; }, buildBackendParallax = function() { if(!window.elementor.elements.models){ return; } var arr = []; if ( ! wglParallax.backEndVars.hasOwnProperty( 'items_parallax' ) ) { return false; } wglParallax.backEndVars[ 'items_parallax' ].models.forEach(function( value ){ arr.push( value.attributes ); }); return arr; }, appendElement = function( settings ) { var node_str = ''; if(settings.image_bg.url){ node_str = '
'; node_str += ''; node_str += '
'; } if( !$(self).find( '.elementor-repeater-item-'+settings._id ).length > 0 ){ $(self).append(node_str); } wglParallax.items.push(settings); var item = jQuery(self).find('.extended-parallax'); if (item.length !== 0 ) { item.each( function() { if(settings._id == jQuery(this).data('itemId')){ if(settings.image_effect == 'mouse'){ if(!jQuery(this).closest('.elementor-section').hasClass('wgl-parallax-mouse')){ jQuery(this).closest('.elementor-section').addClass('wgl-parallax-mouse'); } jQuery(this).wrapInner('
'); }else if( settings.image_effect == 'scroll' ){ if( wglParallax.editorMode ){ jQuery(this).paroller({ factor: settings.parallax_factor, type: 'foreground', // background, foreground direction: settings.parallax_dir, // vertical, horizontal }); jQuery(this).css({'transform' : 'unset'}); }else{ jQuery(this).paroller({ factor: settings.parallax_factor, type: 'foreground', // background, foreground direction: settings.parallax_dir, // vertical, horizontal }); } }else if( settings.image_effect == 'css_animation' ){ var self = $(this); if(self.is_visible()){ self.addClass( settings.animation_name ); } jQuery(window).on('resize scroll', function() { if(self.is_visible()){ self.addClass( settings.animation_name ); } }); } } }); if(settings.image_effect == 'mouse'){ jQuery('.wgl-parallax-mouse').each(function(){ var scene = jQuery(this).get(0); var parallaxInstance = new Parallax(scene, { hoverOnly: true, selector: '.wgl-parallax-layer', pointerEvents: true }); }); } } }, hideMobile = function(){ if(wglParallax.items){ $.each( wglParallax.items, function( index, value ) { if(value.hide_on_mobile){ if (jQuery(window).width() <= value.hide_mobile_resolution) { jQuery('.extended-parallax[data-item-id="'+ value._id +'"]').css({ 'opacity' : '0', 'visibility' : 'hidden' }); }else{ jQuery('.extended-parallax[data-item-id="'+ value._id +'"]').css({ 'opacity' : '1', 'visibility' : 'visible' }); } } }); } }, build = function( settings ) { $.each( settings, function( index, value ) { appendElement(value); }); }; /*Init*/ init(); jQuery( window ).resize( function() { hideMobile(); } ); }); }; // Add Wgl Shape Divider $.fn.WglSectionShapeDividerInit = function( options ){ var defaults = {}; return this.each(function( ) { var self = $(this), wglShapeDivider = { editorMode: window.elementorFrontend.isEditMode(), itemId: $(this).data('id'), options: false, globalVars: 'add_shape_divider', backEndVars: [], items: [], }; var init = function() { setShapeDividerItem(); }, setShapeDividerItem = function(){ var settings; var checkEnabledParallax = ShapeDividerEnabled(); if(!checkEnabledParallax){ return; } if ( ! wglShapeDivider.editorMode ) { settings = buildFrontShapeDivider(); } else { settings = buildBackendShapeDivider(); } if ( ! settings ) { return; } build( settings ); }, ShapeDividerEnabled = function(){ var settings = {}; if ( ! wglShapeDivider.editorMode ) { settings = wgl_parallax_settings[0][wglShapeDivider.itemId]; if(!settings){ return; } }else{ if(!window.elementor.elements){ return; } if(!window.elementor.elements.models){ return; } window.elementor.elements.models.forEach(function( value ){ if ( wglShapeDivider.itemId == value.id ) { wglShapeDivider.backEndVars[wglShapeDivider.itemId] = value.attributes.settings.attributes; settings = value.attributes.settings.attributes; } } ); } return settings; }, buildFrontShapeDivider = function() { var settings = wgl_parallax_settings[0]; return settings; }, buildBackendShapeDivider = function() { if(!window.elementor.elements.models){ return; } var arr = []; arr = wglShapeDivider.backEndVars; return arr; }, getSvgURL = function(fileName) { var svgURL = wgl_parallax_settings.svgURL + fileName + '.svg'; return svgURL; }, appendElement = function(settings ) { var $item = settings[$(self).data('id')]; if(!$item){ return; } var node_str = '', svgURL = ''; if( $item.wgl_shape_divider_top !== '' ){ svgURL = getSvgURL( $item.wgl_shape_divider_top ); node_str = '
'; $(self).prepend(node_str); jQuery.get(svgURL, function (data) { $(self).find('.wgl-divider.wgl-elementor-shape-top').empty().append(data.childNodes[0]); }); } if( $item.wgl_shape_divider_bottom !== '' ){ svgURL = getSvgURL( $item.wgl_shape_divider_bottom ); node_str = '
'; $(self).prepend(node_str); jQuery.get(svgURL, function (data) { $(self).find('.wgl-divider.wgl-elementor-shape-bottom').empty().append(data.childNodes[0]); }); } }, build = function( settings ) { appendElement(settings); }; /*Init*/ init(); }); }; }( jQuery, window ) );