/** * Init Masonry layout */ function esf_insta_init_masonry(){ jQuery('.esf_insta_load_more_btns_wrap').hide(); jQuery('.esf-insta-masonry-wrapper .esf_insta_feed_fancy_popup'). imagesLoaded(function() { jQuery('.esf_insta_feeds_holder .esf-insta-load-opacity').fadeIn('slow').css('display', 'inline-block'); jQuery('.esf_insta_load_more_btns_wrap').slideDown(); jQuery('.esf_insta_feeds_holder .esf-insta-load-opacity').removeClass('esf-insta-load-opacity'); }); } /** * Init Grid layout */ function esf_insta_init_grid(){ jQuery('.esf_insta_load_more_btns_wrap').hide(); jQuery('.esf-insta-grid-wrapper .esf_insta_feed_fancy_popup').imagesLoaded(function() { jQuery('.esf_insta_feeds_holder .esf-insta-load-opacity').fadeIn('slow'); jQuery('.esf_insta_load_more_btns_wrap').slideDown(); jQuery('.esf_insta_feeds_holder .esf-insta-load-opacity').removeClass('esf-insta-load-opacity'); }); } /** * Init carousel layout * * @param current */ function esf_insta_init_carousel(current){ current.on('initialized.owl.carousel resized.owl.carousel', function(event) { let item_width = event.relatedTarget._widths[0]; let item_half = parseInt(item_width / 2); current.find('.esf_insta_feed_fancy_popup').css('height', item_width + 'px'); current.children('.owl-nav').children('button').css('top', item_half + 'px'); }).owlCarousel({ loop: current.data('loop'), autoplay: current.data('autoplay'), margin: current.data('margin'), responsiveClass: true, nav: true, responsive: { 0: { items: current.data('items'), }, 600: { items: current.data('items'), }, 1000: { items: current.data('items'), }, }, navText: [ '', ''], }); } function esf_insta_feed_popup() { jQuery('.esf_insta_feed_fancy_popup').fancybox({ infobar: false, toolbar: true, afterShow: esf_insta_popup_after_load, baseClass: 'esf_insta_feed_popup_container', showCloseButton: false, autoDimensions: true, autoScale: true, buttons: [ 'zoom', 'slideShow', 'fullScreen', 'thumbs', 'close', ], image: { preload: true, }, animationEffect: 'zoom-in-out', transitionEffect: 'zoom-in-out', slideShow: { autoStart: false, speed: 3000, }, touch: false, // Allow to drag content vertically hash: false, iframe: { autoDimensions: true, }, }); } // For Popup Carousel Image function esfInstacarouselImages() { // Changing Images Function starts here var imgFront = jQuery('.esf-insta-popup .esf-insta-media-item img'); jQuery(document).on('click', '.esf-insta-media-thumbnail', function(event) { if (jQuery(this).attr('data-type') == 'VIDEO') { var vidoUrl = jQuery(this).attr('data-v-url'); jQuery(imgFront).addClass('esf-insta-carousel-hide'); jQuery('.esf-insta-popup .esf-insta-media-item .esf-insta-carousel-video'). attr('src', vidoUrl); jQuery('.esf-insta-popup .esf-insta-media-item .esf-insta-carousel-video'). get(0). play(); jQuery('.esf-insta-popup .esf-insta-media-item .esf-insta-carousel-video'). removeClass('esf-insta-carousel-hide'); } else { var imgTo = jQuery(this).attr('style'); imgTo = imgTo.replace('background:url(\'', ''). replace('\');', ''). replace(/\"/gi, ''); jQuery('.esf-insta-popup .esf-insta-media-item .esf-insta-carousel-video'). addClass('esf-insta-carousel-hide'); jQuery(imgFront).attr('src', imgTo); jQuery('.esf-insta-popup .esf-insta-media-item .esf-insta-carousel-video'). get(0). pause(); jQuery(imgFront).removeClass('esf-insta-carousel-hide'); } }); // Changing Images Function ends here // next prev button for function for thumbs starts here var thumbSec = jQuery('.esf-insta-popup .esf-insta-media-thumbnail-section'); var thumbSecOuter = jQuery('.esf-insta-popup .esf-insta-media-carousel'); jQuery(thumbSecOuter). prepend(''); jQuery(thumbSecOuter). append(''); var thumbLBtn = jQuery( '.esf-insta-popup .esf-insta-scrollbtn.esf-insta-lsbtn'); var thumbRBtn = jQuery( '.esf-insta-popup .esf-insta-scrollbtn.esf-insta-rsbtn'); thumbLBtn.fadeOut(); var view = jQuery('.esf-insta-popup .esf-insta-media-thumbnail-section-inner'); var move = jQuery(thumbSec).width(); var limWidth = jQuery(view).width(); var sliderLimit = jQuery(thumbSec).width() - limWidth; if (jQuery(view).width() <= jQuery(thumbSec).width()) { thumbRBtn.fadeOut(); thumbLBtn.fadeOut(); } jQuery(thumbRBtn).click(function() { var currentPosition = parseInt(view.css('left')); if (currentPosition > sliderLimit) { view.stop(false, true). animate({left: '-=' + move}, {duration: 400}); } thumbLBtn.fadeIn(); var currentPositionP = Math.abs(currentPosition); var curNewPositionP = currentPositionP; var rLimitPositionP = Math.abs(sliderLimit + jQuery(thumbSec).width()); if (curNewPositionP >= rLimitPositionP) { jQuery(this).fadeOut(); } }); jQuery(thumbLBtn).click(function() { var currentPosition = parseInt(view.css('left')); if (currentPosition < 0) { view.stop(false, true). animate({left: '+=' + move}, {duration: 400}); } var currentStopPos = Math.abs(currentPosition); var stopPos = jQuery(thumbSec).width(); if (currentStopPos == stopPos) { jQuery(this).fadeOut(); } thumbRBtn.fadeIn(); }); // next prev button for function for thumbs ends here } function esf_insta_popup_after_load() { esfInstacarouselImages(); } jQuery(document).ready(function($) { if (jQuery('.esf_insta_feeds_masonary').length) { esf_insta_init_masonry(); } if (jQuery('.esf_insta_feeds_grid').length) { esf_insta_init_grid(); } jQuery(document).on('click', '.esf_insta_load_more_btn', function(event) { event.preventDefault(); var outer_this = jQuery(this); var selected_template = jQuery(this).data('selected-template'); var load_more_outer = jQuery(this).parent().parent().parent(); var is_disabled = jQuery(this).hasClass('no-more'); if (is_disabled) { return; } jQuery(outer_this).addClass('loading'); var transient_name = jQuery(this).data('transient-name'); var current_items = jQuery(this).attr('data-current_items'); var shortcode_atts = jQuery(this).data('shortcode_atts'); jQuery.ajax({ url: esf_insta.ajax_url, type: 'post', dataType: 'json', data: { action: 'esf_insta_load_more_feeds', current_items: current_items, shortcode_atts: shortcode_atts, transient_name: transient_name, selected_template: selected_template, nonce: esf_insta.nonce, }, success: function(response) { if (response.success) { var html = response.data.html; var total_items = response.data.total_items; jQuery(outer_this).attr('data-current_items', ' '); jQuery(outer_this).attr('data-current_items', total_items); if (selected_template === 'masonary') { var $container = jQuery('.esf-insta-masonry-wrapper a'); var $items = jQuery(html); jQuery(outer_this). parent(). parent(). parent(). parent(). find('.esf-insta-masonry'). append(html); jQuery('.esf-insta-masonry-wrapper .esf_insta_feed_fancy_popup'). imagesLoaded(function() { jQuery('.esf_insta_feeds_holder .esf-insta-load-opacity'). fadeIn('slow'). css('display', 'inline-block'); jQuery(outer_this).removeClass('loading'); jQuery('.esf_insta_feeds_holder .esf-insta-load-opacity'). removeClass('esf-insta-load-opacity'); }); } else if (selected_template === 'grid') { jQuery(outer_this). parent(). parent(). parent(). parent(). find('.esf-insta-row'). append(html); jQuery('.esf-insta-grid-wrapper .esf_insta_feed_fancy_popup'). imagesLoaded(function() { jQuery('.esf_insta_feeds_holder .esf-insta-load-opacity'). fadeIn('slow'); jQuery(outer_this).removeClass('loading'); jQuery('.esf_insta_feeds_holder .esf-insta-load-opacity'). removeClass('esf-insta-load-opacity'); }); jQuery(outer_this).removeClass('loading'); } else { jQuery(outer_this). parent(). parent(). parent(). siblings('.esf_insta_feeds_holder'). append(html); jQuery(outer_this).removeClass('loading'); } } else { jQuery(outer_this).removeClass('loading'); jQuery(outer_this).addClass('no-more'); console.log('ESF Error: ' + response.data); } }, }); }); /* */ }); function esf_insta_init_layouts(){ esf_insta_init_masonry(); esf_insta_init_grid(); esf_insta_init_carousel(jQuery('.esf_insta_feeds_carousel')); esf_insta_feed_popup(); esf_insta_popup_after_load(); } jQuery( window ).on( 'elementor/frontend/init', function() { elementorFrontend.hooks.addAction( 'frontend/element_ready/shortcode.default', function(){ esf_insta_init_layouts(); }); elementorFrontend.hooks.addAction( 'frontend/element_ready/esf_instagram_feed.default', function(){ esf_insta_init_layouts(); }); } );