/* global fusionPostCardsVars, fusion, fusionInitPostFlexSlider, imagesLoaded, fusionInitAudioElements */
( function( jQuery ) {
'use strict';
jQuery.fn.awbAnimatePostCards = function() {
if ( 'IntersectionObserver' in window ) {
jQuery.each( fusion.getObserverSegmentation( jQuery( this ) ), function( index ) {
var options = fusion.getAnimationIntersectionData( index ),
postCardsObserver = new IntersectionObserver( function( entries, observer ) {
jQuery.each( entries, function( key, entry ) {
var postCards = jQuery( entry.target ),
delay = 0,
animationType = postCards.attr( 'data-animationtype' ),
animationDuration = postCards.attr( 'data-animationduration' ),
animationDelay = parseInt( postCards.attr( 'data-animation-delay' ) * 1000, 10 );
if ( fusion.shouldObserverEntryAnimate( entry, observer ) ) {
postCards.find( '.fusion-grid-column:not([data-awb-animation-finished])' ).each( function() {
var target = jQuery( this );
setTimeout( function() {
target.css( 'visibility', 'visible' );
target.addClass( animationType );
if ( animationDuration ) {
target.css( '-moz-animation-duration', animationDuration + 's' );
target.css( '-webkit-animation-duration', animationDuration + 's' );
target.css( '-o-animation-duration', animationDuration + 's' );
target.css( 'animation-duration', animationDuration + 's' );
}
setTimeout( function() {
target.removeClass( animationType );
target.attr( 'data-awb-animation-finished', 'true' );
}, animationDuration * 1000 );
}, delay );
delay += animationDelay;
} );
postCardsObserver.unobserve( entry.target );
}
} );
}, options );
// Observe.
jQuery( this ).each( function() {
postCardsObserver.observe( this );
} );
} );
} else {
jQuery( this ).find( '.fusion-grid-column' ).each( function() {
jQuery( this ).css( 'visibility', 'visible' );
} );
}
};
}( jQuery ) );
// Flexslider is handled separately in fusion-flexslider.js with other slider code.
jQuery( window ).on( 'load fusion-element-render-fusion_post_cards', function() {
// Don't run on live editor, it is separate.
if ( ! jQuery( 'body' ).hasClass( 'fusion-builder-live-preview' ) ) {
jQuery( '.fusion-post-cards.fusion-delayed-animation' ).awbAnimatePostCards();
}
// Setup infinite scroll for each blog instance; main blog page and blog shortcodes
jQuery( '.fusion-grid-container-infinite' ).each( function( index ) {
// Set the correct container for blog shortcode infinite scroll
var $blogInfiniteContainer = jQuery( this ),
$originalPosts = jQuery( this ).find( '.post-card' ),
$parentWrapperClasses,
$fusionPostsContainer,
$currentPage,
$loadMoreButton,
postClass = 'post-card',
galleryName = '';
// If more than one blog shortcode is on the page, make sure the infinite scroll selectors are correct
$parentWrapperClasses = '';
if ( $blogInfiniteContainer.closest( '.fusion-post-cards' ).length ) {
$parentWrapperClasses = '.' + $blogInfiniteContainer.parents( '.fusion-post-cards' ).attr( 'class' ).replace( /\ /g, '.' ) + ' '; // eslint-disable-line no-useless-escape
}
// Infite scroll for main blog page and blog shortcode.
jQuery( $blogInfiniteContainer ).infinitescroll( {
navSelector: $parentWrapperClasses + '.fusion-infinite-scroll-trigger',
// Selector for the paged navigation (it will be hidden)
nextSelector: $parentWrapperClasses + 'a.pagination-next',
// Selector for the NEXT link (to page 2)
itemSelector: $parentWrapperClasses + '.' + postClass + ', ' + $parentWrapperClasses + 'div.pagination .current',
// Selector for all items you'll retrieve
loading: {
finishedMsg: fusionPostCardsVars.infinite_finished_msg,
msg: jQuery( '
' + fusionPostCardsVars.infinite_text + '
' )
},
maxPage: ( $blogInfiniteContainer.data( 'pages' ) ) ? $blogInfiniteContainer.data( 'pages' ) : undefined,
infid: 'pc' + index,
errorCallback: function() {
// If this is an equal heights blog, clear the set element height on resize for correct isotope positioning.
$blogInfiniteContainer.find( '.fusion-post-grid' ).css( 'height', '' );
}
}, function( posts, opts, url ) {
var page = url.split( '/' ),
$posts = jQuery( posts ),
$filters,
$filterActiveElement,
$filterActive;
page = page[ page.length - 2 ];
$filters = $blogInfiniteContainer.closest( '.fusion-post-cards' ).find( '.fusion-filters' ).find( '.fusion-filter' );
if ( $filters.length ) {
$filterActiveElement = $blogInfiniteContainer.closest( '.fusion-post-cards' ).find( '.fusion-filters' ).find( '.fusion-filter.fusion-active a' );
$filterActive = $filterActiveElement.attr( 'data-filter' ).substr( 1 );
if ( $filterActive.length ) {
$posts.hide();
}
}
// Init flexslider for newly added posts.
if ( 'function' === typeof fusionInitPostFlexSlider ) {
fusionInitPostFlexSlider();
}
// Init audio player for newly added posts.
if ( 'function' === typeof fusionInitAudioElements ) {
fusionInitAudioElements();
}
imagesLoaded( $posts, function() {
// Make sure column IDs work.
$posts.each( function() {
var className;
if ( 'undefined' !== typeof jQuery( this ).attr( 'class' ) ) {
className = jQuery( this ).attr( 'class' ).replace( /fusion-builder-column-/g, 'fusion-builder-column-' + opts.infid + '-' + page + '-' ).replace( /fusion-builder-nested-column-/g, 'fusion-builder-nested-column-' + opts.infid + '-' + page + '-' );
jQuery( this ).attr( 'class', className );
}
} );
if ( $filters ) {
// Loop through all filters.
$filters.each( function() {
var $filter = jQuery( this ),
$filterName = $filter.children( 'a' ).data( 'filter' ),
$post;
if ( $posts ) {
// Loop through the newly loaded posts.
$posts.each( function() {
$post = jQuery( this );
// Check if one of the new posts has the class of a still hidden filter.
if ( $post.hasClass( $filterName.substr( 1 ) ) ) {
if ( $filter.hasClass( 'fusion-hidden' ) ) {
$filter.fadeIn( 400, function() {
$filter.removeClass( 'fusion-hidden' );
} );
}
}
} );
}
} );
}
if ( 'undefined' !== typeof $filterActive && $filterActive.length ) {
$posts.each( function() {
var $post = jQuery( this );
if ( $post.hasClass( $filterActive ) ) {
$post.fadeIn();
}
} );
} else {
$posts.fadeIn();
}
if ( $blogInfiniteContainer.hasClass( 'fusion-masonry-posts-cards' ) ) {
$blogInfiniteContainer.isotope( 'appended', $posts );
}
// Trigger fitvids.
$posts.each( function() {
jQuery( this ).find( '.full-video, .video-shortcode, .wooslider .slide-content' ).fitVids();
} );
} );
// Hide the load more button, if the currently loaded page is already the last page
$fusionPostsContainer = $blogInfiniteContainer;
$currentPage = $fusionPostsContainer.find( '.current' ).html();
$fusionPostsContainer.find( '.current' ).remove();
if ( $fusionPostsContainer.data( 'pages' ) == $currentPage ) { // jshint ignore:line
$fusionPostsContainer.parent().find( '.fusion-loading-container' ).hide();
$fusionPostsContainer.parent().find( '.fusion-load-more-button' ).hide();
}
// Activate lightbox for the newly added posts.
if ( jQuery( posts ).find( '.fusion-rollover-gallery' ).length || jQuery( posts ).find( '.fusion-lightbox' ).length ) {
if ( 'individual' === fusionPostCardsVars.lightbox_behavior || ! $originalPosts.find( '.fusion-rollover-gallery' ).length ) {
window.avadaLightBox.activate_lightbox( jQuery( posts ) );
$originalPosts = $blogInfiniteContainer.find( '.post' );
} else {
galleryName = $originalPosts.find( '.fusion-rollover-gallery' ).first().data( 'rel' );
$originalPosts = $blogInfiniteContainer.find( '.post' );
if ( 'undefined' !== typeof window.$ilInstances[ galleryName ] ) {
window.$ilInstances[ galleryName ].destroy();
delete window.$ilInstances[ galleryName ];
window.avadaLightBox.activate_lightbox( $originalPosts );
}
}
// Refresh the lightbox, needed in any case.
window.avadaLightBox.refresh_lightbox();
}
// Trigger resize so that any parallax sections below get recalculated.
setTimeout( function() {
jQuery( window ).trigger( 'resize', [ false ] );
}, 500 );
// Reinitialize element animations.
// Don't run on live editor, it is separate.
if ( ! jQuery( 'body' ).hasClass( 'fusion-builder-live-preview' ) && jQuery( $parentWrapperClasses ).hasClass( 'fusion-delayed-animation' ) ) {
jQuery( $parentWrapperClasses ).awbAnimatePostCards();
} else if ( jQuery.isFunction( jQuery.fn.initElementAnimations ) ) {
jQuery( window ).initElementAnimations();
}
jQuery( window ).trigger( 'awb-more-elements-loaded', [ 'post_cards', posts ] );
} );
// Setup infinite scroll manual loading
if ( ( jQuery( $blogInfiniteContainer ).hasClass( 'fusion-grid-archive' ) && 'load_more_button' === fusionPostCardsVars.pagination_type ) ||
jQuery( $blogInfiniteContainer ).hasClass( 'fusion-grid-container-load-more' )
) {
jQuery( $blogInfiniteContainer ).infinitescroll( 'unbind' );
// Load more posts button click
if ( jQuery( $blogInfiniteContainer ).hasClass( 'fusion-grid-archive' ) ) {
$loadMoreButton = jQuery( $blogInfiniteContainer ).parent().find( '.fusion-load-more-button' );
} else {
$loadMoreButton = jQuery( $blogInfiniteContainer ).parents( '.fusion-grid-archive' ).find( '.fusion-load-more-button' );
}
$loadMoreButton.on( 'click', function( e ) {
e.preventDefault();
// Use the retrieve method to get the next set of posts
jQuery( $blogInfiniteContainer ).infinitescroll( 'retrieve' );
} );
}
// Hide the load more button, if there is only one page
$fusionPostsContainer = $blogInfiniteContainer;
if ( 1 === parseInt( $fusionPostsContainer.data( 'pages' ), 10 ) ) {
$fusionPostsContainer.parent().find( '.fusion-loading-container' ).hide();
$fusionPostsContainer.parent().find( '.fusion-load-more-button' ).hide();
}
} );
} );
// Handle post cards filters.
jQuery( document ).on( 'ready fusion-element-render-fusion_post_cards fusion-reinit-masonry', function( $, cid ) {
var $elementCheck = 'undefined' !== typeof cid ? jQuery( 'div[data-cid="' + cid + '"]' ).find( '.fusion-post-cards' ) : jQuery( '.fusion-post-cards' );
$elementCheck.each( function() {
// Initialize the filters and corresponding posts
// Check if filters are displayed
var $postCardsElement = jQuery( this ),
$filtersWrapper = $postCardsElement.find( '.fusion-filters' ),
$filters,
$filterActiveElement,
$filterActive,
$posts;
// Make the posts visible
$postCardsElement.find( 'ul' ).fadeIn();
// Init audio player for newly added posts.
if ( $postCardsElement.find( '.fusion-audio' ) && 'function' === typeof fusionInitAudioElements ) {
fusionInitAudioElements();
}
if ( $filtersWrapper.length ) {
// Make filters visible
$filtersWrapper.css( 'display', 'flex' );
// Set needed variables
$filters = $filtersWrapper.find( '.fusion-filter' );
$filterActiveElement = $filtersWrapper.find( '.fusion-active' ).children( 'a' );
$filterActive = $filterActiveElement.attr( 'data-filter' ).substr( 1 );
$posts = jQuery( this ).find( 'ul li.post-card' );
// Loop through filters
if ( $filters ) {
$filters.each( function() {
var $filter = jQuery( this ),
$filterName = $filter.children( 'a' ).data( 'filter' );
// Loop through post set
if ( $posts ) {
// If "All" filter is deactivated, hide posts for later check for active filter
if ( $filterActive.length ) {
$posts.hide();
}
$posts.each( function() {
var $post = jQuery( this );
// If a post belongs to an invisible filter, fade the filter in
if ( $post.hasClass( $filterName.substr( 1 ) ) ) {
if ( $filter.hasClass( 'fusion-hidden' ) ) {
$filter.removeClass( 'fusion-hidden' );
}
}
// If "All" filter is deactivated, only show the items of the first filter (which is auto activated)
if ( $filterActive.length && $post.hasClass( $filterActive ) ) {
$post.show();
}
} );
}
} );
}
}
// Init isotope.
if ( $postCardsElement.hasClass( 'fusion-post-cards-masonry' ) ) {
// Remove if existing.
if ( $postCardsElement.find( '.fusion-grid' ).data( 'isotope' ) ) {
$postCardsElement.find( '.fusion-grid' ).isotope( 'destroy' );
$postCardsElement.find( '.fusion-grid' ).removeData( 'isotope' );
}
if ( 'undefined' !== typeof cid ) {
setTimeout( initMasonry(), 200 );
} else {
initMasonry();
}
}
function initMasonry() {
$postCardsElement.find( '.fusion-masonry-posts-cards' ).isotope( {
itemSelector: '.fusion-layout-column:not(.fusion_builder_column_inner)',
layoutMode: 'packery'
} );
}
// Handle the filter clicks
$postCardsElement.find( '.fusion-filters a' ).on( 'click', function( e ) {
var selector = jQuery( this ).attr( 'data-filter' );
e.preventDefault();
// Fade out the post cards posts and fade in the ones matching the selector
if ( $postCardsElement.hasClass( 'fusion-post-cards-masonry' ) ) {
$postCardsElement.find( '.fusion-masonry-posts-cards' ).isotope( { filter: selector } );
jQuery( window ).trigger( 'resize' );
} else {
$postCardsElement.find( 'ul li.post-card' ).fadeOut();
setTimeout( function() {
$postCardsElement.find( 'ul li.post-card' + selector ).fadeIn();
}, 400 );
}
// Set the active
jQuery( this ).parents( '.fusion-filters' ).find( '.fusion-filter' ).removeClass( 'fusion-active' );
jQuery( this ).parent().addClass( 'fusion-active' );
} );
} );
} );
Where can I get support? – DONGWOO M TECHNO
Skip to content
Where can I get support?
Home Design Process Where can I get support?
Where can I get support?
Fusce porta augue quis erat dignissim, id laoreet sapien pulvinar. Nullam blandit nisi ac nulla tempus, ultrices condimentum elit ultrices. Donec semper accumsan ligula, ut rutrum purus ultrices id. Aenean eleifend velit at nibh consectetur pretium. Vestibulum at justo quis ex venenatis aliquet. Ut porta, nunc sed venenatis maximus, lectus magna maximus dui, vel lobortis dui odio at ipsum. Curabitur nisl nisl, consequat in fermentum vitae, semper et dolor. Mauris cursus scelerisque dui et molestie. Vivamus sapien ex, aliquam sit amet libero non, auctor gravida nibh.
Share This Story, Choose Your Platform!
Page load link
Leave A Comment