This repository has been archived on 2022-06-23. You can view files and clone it, but cannot push or open issues or pull requests.
divi/epanel/shortcodes/js/et_shortcodes_frontend.js
2021-12-07 11:08:05 +00:00

382 lines
14 KiB
JavaScript

/*! ET et_shortcodes_frontend.js */
// et_switcher plugin v2.2
(function($)
{
$.fn.et_shortcodes_switcher = function(options)
{
var defaults =
{
slides: '>div',
activeClass: 'active',
linksNav: '',
findParent: true, //use parent elements to define active states
lengthElement: 'li', //parent element, used only if findParent is set to true
useArrows: false,
arrowLeft: 'a#prev-arrow',
arrowRight: 'a#next-arrow',
auto: false,
autoSpeed: 5000,
slidePadding: '',
pauseOnHover: true,
fx: 'fade',
sliderType: ''
};
var options = $.extend(defaults, options);
return this.each(function()
{
var slidesContainer = jQuery(this).parent().css('position','relative'),
$slides = jQuery(this).css({'overflow':'hidden','position':'relative'}),
$slides_wrapper_box = slidesContainer.find('.et-tabs-content-wrapper'),
$slides_wrapper = $slides_wrapper_box.parent(),
$slide = $slides.find( '.et-tabs-content-wrapper' + options.slides),
slidesNum = $slide.length,
zIndex = slidesNum,
currentPosition = 1,
slideHeight = 0,
$activeSlide,
$nextSlide,
slides_wrapper_width = $slides_wrapper.width(),
$et_shortcodes_mobile_nav,
$et_shortcodes_mobile_controls;
if (options.fx === 'slide') {
$slides_wrapper_box.width( ( ( slidesNum + 2 ) * 200 ) + '%' );
$slide.css({
'width': slides_wrapper_width + 'px',
'visibility': 'visible',
});
$slides_wrapper_box.append($slide.first().clone().removeClass().addClass('et_slidecontent_cloned'));
$slides_wrapper_box.prepend( $slide.last().clone().removeClass().addClass('et_slidecontent_cloned') );
$slides_wrapper_box.css('left', - slides_wrapper_width + 'px');
}
$slide.first().css({ 'display': 'block' }).addClass('et_shortcode_slide_active');
if ('' !== options.slidePadding) {
var slidePaddingOption = 'number' === typeof options.slidePadding ? options.slidePadding + 'px' : options.slidePadding;
$slide.css('padding', slidePaddingOption);
}
if (options.linksNav != '') {
var linkSwitcher = jQuery(options.linksNav);
var linkSwitcherTab = '';
if (options.findParent) linkSwitcherTab = linkSwitcher.parent();
else linkSwitcherTab = linkSwitcher;
if (!linkSwitcherTab.filter('.active').length) linkSwitcherTab.first().addClass('active');
linkSwitcher.on('click', function() {
var targetElement, orderNum;
if (options.findParent) targetElement = jQuery(this).parent();
else targetElement = jQuery(this);
orderNum = targetElement.prevAll(options.lengthElement).length+1;
if (orderNum > currentPosition) gotoSlide(orderNum, 1);
else gotoSlide(orderNum, -1);
return false;
});
}
if (options.useArrows) {
var $right_arrow = jQuery(options.arrowRight),
$left_arrow = jQuery(options.arrowLeft);
$right_arrow.on('click', function(){
et_shortcodes_go_to_next_slide();
return false;
});
$left_arrow.on('click', function(){
et_shortcodes_go_to_previous_slide();
return false;
});
}
function changeTab(){
if (linkSwitcherTab != '') {
linkSwitcherTab.siblings().removeClass('active');
linkSwitcherTab.eq(currentPosition - 1).addClass('active');
}
}
function gotoSlide(slideNumber,dir){
if ($slide.filter(':animated').length) return;
$activeSlide = $slide.parent().find('.et_slidecontent').eq(currentPosition - 1);
if (currentPosition === slideNumber) return;
$activeSlide.removeClass('et_shortcode_slide_active');
$nextSlide = $slide.parent().find('.et_slidecontent').eq(slideNumber - 1).addClass('et_shortcode_slide_active');
if ((currentPosition > slideNumber || currentPosition === 1) && (dir === -1)) {
if (options.fx === 'slide') slideBack(500);
if (options.fx === 'fade') slideFade(500);
} else {
if (options.fx === 'slide') slideForward(500);
if (options.fx === 'fade') slideFade(500);
}
currentPosition = $nextSlide.prevAll('.et_slidecontent').length + 1;
if (options.linksNav != '') changeTab();
if ( options.sliderType === 'images' || options.sliderType === 'simple' ){
$et_shortcodes_mobile_controls.find('li').removeClass('et_shortcodes_active_control');
$et_shortcodes_mobile_controls.find('li').eq(currentPosition-1).addClass('et_shortcodes_active_control');
}
return false;
}
if (options.auto) {
auto_rotate();
var pauseSlider = false;
}
if (options.pauseOnHover) {
slidesContainer.on('mouseenter', function(){
pauseSlider = true;
}).on('mouseleave', function(){
pauseSlider = false;
});
}
function auto_rotate(){
interval_shortcodes = setInterval(function(){
if (!pauseSlider) {
if (currentPosition === slidesNum)
gotoSlide(1,1);
else
gotoSlide(currentPosition+1,1);
if (options.linksNav != '') changeTab();
}
},options.autoSpeed);
}
function slideFade(speed){
$activeSlide.css( { 'display' : 'none', 'opacity' : '0' } );
$nextSlide.css({'opacity' : '0', 'display':'block'}).animate( { opacity : 1 }, 700 );
}
function slideForward(speed){
var next_slide_order = $nextSlide.prevAll('.et_slidecontent').length+1,
go_to_first_slide = false;
if ( $activeSlide.next('.et_slidecontent_cloned').length ) {
next_slide_order = $activeSlide.prevAll().length+1;
go_to_first_slide = true;
}
$slides_wrapper_box.animate( { left : - ( $slides_wrapper.width() * next_slide_order ) }, 500, function(){
if (go_to_first_slide) {
$slides_wrapper_box.css('left', - $slides_wrapper.width() + 'px');
}
} );
}
function slideBack(speed){
var next_slide_order = $nextSlide.prevAll('.et_slidecontent').length+1,
go_to_last_slide = false;
if ( $activeSlide.prev('.et_slidecontent_cloned').length ) {
next_slide_order = 0;
go_to_last_slide = true;
}
$slides_wrapper_box.animate( { left : - ( $slides_wrapper.width() * next_slide_order ) }, 500, function(){
if (go_to_last_slide) {
$slides_wrapper_box.css('left', - ($slides_wrapper.width() * slidesNum) + 'px');
}
} );
}
if (options.fx === 'slide') {
$(window).on('resize', function(){
$slides_wrapper_box.find('>div').css({ 'width' : $slides_wrapper.width() + 'px' });
$slides_wrapper_box.css('left', - ($slides_wrapper.width() * currentPosition) + 'px');
} );
}
et_generate_mobile_nav();
function et_generate_mobile_nav(){
var et_shortcodes_slides_num = slidesContainer.find( '.et_slidecontent' ).length,
et_shortcodes_controllers_html = '';
if ( et_shortcodes_slides_num > 1 && ( options.sliderType === 'images' || options.sliderType === 'simple' ) ){
slidesContainer.append( '<div class="et_shortcodes_controller_nav">' + '<ul class="et_shortcodes_controls"></ul>' + '<ul class="et_shortcodes_controls_arrows"><li><a href="#" class="et_sc_nav_next">' + et_shortcodes_strings.next + '<span></span></a></li><li><a href="#" class="et_sc_nav_prev">' + et_shortcodes_strings.previous + '<span></span></a></li></ul>' + '</div>' );
$et_shortcodes_mobile_controls = slidesContainer.find('.et_shortcodes_controls');
for ( var i = 0; i < et_shortcodes_slides_num; i++ ) {
et_shortcodes_controllers_html += '<li><a href="#"></a></li>';
}
$et_shortcodes_mobile_controls.prepend( et_shortcodes_controllers_html );
$et_shortcodes_mobile_controls.find('li').first().addClass('et_shortcodes_active_control');
$et_shortcodes_mobile_controls.find('a').on('click', function() {
var $this_control = $(this),
$this_control_li = $this_control.parent('li'),
this_order = $this_control_li.prevAll().length+1;
if ( this_order == currentPosition ) return false;
if ( this_order > currentPosition ) gotoSlide(this_order, 1);
else gotoSlide(this_order, -1);
return false;
});
$et_shortcodes_mobile_nav = slidesContainer.find('.et_shortcodes_controls_arrows');
$et_shortcodes_mobile_nav.find('a').on('click', function() {
var $this_link = jQuery(this),
et_active_slide_order;
if ( $this_link.hasClass( 'et_sc_nav_next' ) )
et_shortcodes_go_to_next_slide();
if ( $this_link.hasClass( 'et_sc_nav_prev' ) )
et_shortcodes_go_to_previous_slide();
$et_shortcodes_mobile_controls.find('li').removeClass('et_shortcodes_active_control');
et_active_slide_order = currentPosition - 1;
$et_shortcodes_mobile_controls.find('li').eq( et_active_slide_order ).addClass('et_shortcodes_active_control');
return false;
});
} else if ( options.sliderType !== 'images' && options.sliderType !== 'simple' ) {
slidesContainer.prepend( '<ul class="et_shortcodes_mobile_nav"><li><a href="#" class="et_sc_nav_next">' + et_shortcodes_strings.next + '<span></span></a></li><li><a href="#" class="et_sc_nav_prev">' + et_shortcodes_strings.previous + '<span></span></a></li></ul>' );
$et_shortcodes_mobile_nav = slidesContainer.find('.et_shortcodes_mobile_nav');
$et_shortcodes_mobile_nav.find('a').on('click', function() {
var $this_link = jQuery(this);
if ( $this_link.hasClass( 'et_sc_nav_next' ) )
et_shortcodes_go_to_next_slide();
if ( $this_link.hasClass( 'et_sc_nav_prev' ) )
et_shortcodes_go_to_previous_slide();
return false;
});
}
}
function et_shortcodes_go_to_next_slide(){
if (currentPosition === slidesNum)
gotoSlide(1,1);
else
gotoSlide(currentPosition+1,1);
if (options.linksNav != '') changeTab();
}
function et_shortcodes_go_to_previous_slide(){
if (currentPosition === 1)
gotoSlide(slidesNum,-1);
else
gotoSlide(currentPosition-1,-1);
if (options.linksNav != '') changeTab();
}
});
}
window.et_shortcodes_init = function( $container ) {
var $processed_container = typeof $container !== 'undefined' ? $container : $( 'body' );
var $et_pricing_table_button = $processed_container.find('.pricing-table a.icon-button');
$et_tooltip = $processed_container.find('.et-tooltip');
$et_tooltip.on('mouseover mouseout', function(event){
if (event.type == 'mouseover') {
$(this).find('.et-tooltip-box').stop(true,true).animate({ opacity: 'show', bottom: '25px' }, 300);
} else {
$(this).find('.et-tooltip-box').delay(200).animate({ opacity: 'hide', bottom: '35px' }, 300);
}
});
// learn more
$et_learn_more = $processed_container.find('.et-learn-more .heading-more');
$et_learn_more.on('click', function() {
if ( $(this).hasClass('open') ) {
$(this).removeClass('open');
} else {
$(this).addClass('open');
}
$(this).parent('.et-learn-more').find('.learn-more-content').animate({ opacity: 'toggle', height: 'toggle' }, 300);
});
$processed_container.find('.et-learn-more').not('.et-open').find('.learn-more-content').css( { 'visibility' : 'visible', 'display' : 'none' } );
$et_pricing_table_button.each( function(){
var $this_button = $(this),
this_button_width = $this_button.width(),
this_button_innerwidth = $this_button.innerWidth();
$this_button.css({
width: this_button_width + 'px',
'marginLeft': '-' + (this_button_innerwidth / 2) + 'px',
'visibility': 'visible',
});
} );
var $et_shortcodes_tabs = $processed_container.find('.et-tabs-container, .tabs-left, .et-simple-slider, .et-image-slider');
$et_shortcodes_tabs.each(function(i){
var et_shortcodes_tab_class = $(this).attr('class'),
et_shortcodes_tab_autospeed_class_value = /et_sliderauto_speed_(\d+)/g,
et_shortcodes_tab_autospeed = et_shortcodes_tab_autospeed_class_value.exec( et_shortcodes_tab_class ),
et_shortcodes_tab_auto_class_value = /et_sliderauto_(\w+)/g,
et_shortcodes_tab_auto = et_shortcodes_tab_auto_class_value.exec( et_shortcodes_tab_class ),
et_shortcodes_tab_type_class_value = /et_slidertype_(\w+)/g,
et_shortcodes_tab_type = et_shortcodes_tab_type_class_value.exec( et_shortcodes_tab_class ),
et_shortcodes_tab_fx_class_value = /et_sliderfx_(\w+)/g,
et_shortcodes_tab_fx = et_shortcodes_tab_fx_class_value.exec( et_shortcodes_tab_class ),
et_shortcodes_tab_apply_to_element = '.et-tabs-content',
et_shortcodes_tab_settings = {};
et_shortcodes_tab_settings.linksNav = $(this).find('.et-tabs-control li a');
et_shortcodes_tab_settings.findParent = true;
et_shortcodes_tab_settings.fx = et_shortcodes_tab_fx[1];
et_shortcodes_tab_settings.auto = 'false' === et_shortcodes_tab_auto[1] ? false : true;
et_shortcodes_tab_settings.autoSpeed = et_shortcodes_tab_autospeed[1];
if ( 'simple' === et_shortcodes_tab_type[1] ){
et_shortcodes_tab_settings = {};
et_shortcodes_tab_settings.fx = et_shortcodes_tab_fx[1];
et_shortcodes_tab_settings.auto = 'false' === et_shortcodes_tab_auto[1] ? false : true;
et_shortcodes_tab_settings.autoSpeed = et_shortcodes_tab_autospeed[1];
et_shortcodes_tab_settings.sliderType = 'simple';
et_shortcodes_tab_apply_to_element = '.et-simple-slides';
} else if ( 'images' === et_shortcodes_tab_type[1] ){
et_shortcodes_tab_settings.sliderType = 'images';
et_shortcodes_tab_settings.linksNav = '#' + $(this).attr('id') + ' .controllers a.switch';
et_shortcodes_tab_settings.findParent = false;
et_shortcodes_tab_settings.lengthElement = '#' + $(this).attr('id') + ' a.switch';
et_shortcodes_tab_apply_to_element = '.et-image-slides';
}
$(this).find(et_shortcodes_tab_apply_to_element).et_shortcodes_switcher( et_shortcodes_tab_settings );
});
}
})(jQuery);
// end et_switcher plugin v2
/////// Shortcodes Javascript ///////
jQuery(function($){
window.et_shortcodes_init();
});