78 lines
2.4 KiB
JavaScript
78 lines
2.4 KiB
JavaScript
/**
|
|
* Theme Customizer enhancements for a better user experience.
|
|
*
|
|
* Contains handlers to make Theme Customizer preview reload changes asynchronously.
|
|
*/
|
|
|
|
( function( $ ) {
|
|
|
|
// Container width
|
|
wp.customize( 'generate_settings[container_width]', function( value ) {
|
|
value.bind( function( newval ) {
|
|
if ( $( '.masonry-container' )[0] ) {
|
|
var $initiate = jQuery('.masonry-container').imagesLoaded( function() {
|
|
$container = jQuery('.masonry-container');
|
|
if (jQuery($container).length) {
|
|
$container.masonry({
|
|
columnWidth: '.grid-sizer',
|
|
itemSelector: '.masonry-post',
|
|
stamp: '.page-header'
|
|
});
|
|
}
|
|
});
|
|
}
|
|
} );
|
|
} );
|
|
|
|
$( 'body' ).on( 'generate_spacing_updated', function() {
|
|
if ( $( '.masonry-container' )[0] ) {
|
|
var $initiate = jQuery('.masonry-container').imagesLoaded( function() {
|
|
$container = jQuery('.masonry-container');
|
|
if (jQuery($container).length) {
|
|
$container.masonry({
|
|
columnWidth: '.grid-sizer',
|
|
itemSelector: '.masonry-post',
|
|
stamp: '.page-header'
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
/**
|
|
* The first infinite scroll load in the Customizer misses article classes if they've been
|
|
* added or removed in the previous refresh.
|
|
*
|
|
* This is totally hacky, but I'm just happy I finally got it working!
|
|
*/
|
|
var $container = $( 'article' ).first().parent();
|
|
$container.on( 'load.infiniteScroll', function( event, response, path ) {
|
|
$posts = $( response ).find( 'article' );
|
|
if ( wp.customize.value('generate_blog_settings[column_layout]')() ) {
|
|
$posts.addClass( 'generate-columns' );
|
|
$posts.addClass( 'grid-parent' );
|
|
$posts.addClass( 'grid-' + wp.customize.value('generate_blog_settings[columns]')() );
|
|
$posts.addClass( 'tablet-grid-50' );
|
|
$posts.addClass( 'mobile-grid-100' );
|
|
} else {
|
|
$posts.removeClass( 'generate-columns' );
|
|
$posts.removeClass( 'grid-parent' );
|
|
$posts.removeClass( 'grid-' + wp.customize.value('generate_blog_settings[columns]')() );
|
|
$posts.removeClass( 'tablet-grid-50' );
|
|
$posts.removeClass( 'mobile-grid-100' );
|
|
}
|
|
|
|
if ( wp.customize.value('generate_blog_settings[masonry]')() ) {
|
|
$posts.addClass( 'masonry-post' );
|
|
} else {
|
|
$posts.removeClass( 'masonry-post' );
|
|
}
|
|
|
|
if ( ! wp.customize.value('generate_blog_settings[post_image_padding]')() ) {
|
|
$posts.addClass( 'no-featured-image-padding' );
|
|
} else {
|
|
$posts.removeClass( 'no-featured-image-padding' );
|
|
}
|
|
});
|
|
|
|
} )( jQuery ); |