83 lines
1.9 KiB
JavaScript
83 lines
1.9 KiB
JavaScript
var $j = jQuery.noConflict();
|
|
|
|
$j(document).ready(function(e) {
|
|
|
|
// Switcher buttons
|
|
(function () {
|
|
// Cache selector to all items
|
|
var $items = $j( '.oceanwp-modules .modules-inner' ).find( '.column-wrap' ),
|
|
fadeoutClass = 'is-fadeout',
|
|
fadeinClass = 'is-fadein',
|
|
animationDuration = 200;
|
|
|
|
// Hide all items.
|
|
var fadeOut = function () {
|
|
var dfd = jQuery.Deferred();
|
|
|
|
$items.addClass( fadeoutClass );
|
|
|
|
setTimeout( function() {
|
|
$items.removeClass( fadeoutClass ).hide();
|
|
|
|
dfd.resolve();
|
|
}, animationDuration );
|
|
|
|
return dfd.promise();
|
|
};
|
|
|
|
var fadeIn = function ( type, dfd ) {
|
|
var filter = type ? '[data-type*="' + type + '"]' : 'div';
|
|
|
|
if ( 'all' === type ) {
|
|
filter = 'div';
|
|
}
|
|
|
|
$items.filter( filter ).show().addClass( 'is-fadein' );
|
|
|
|
setTimeout( function() {
|
|
$items.removeClass( fadeinClass );
|
|
|
|
dfd.resolve();
|
|
}, animationDuration );
|
|
};
|
|
|
|
var animate = function ( type ) {
|
|
var dfd = jQuery.Deferred();
|
|
|
|
var promise = fadeOut();
|
|
|
|
promise.done( function () {
|
|
fadeIn( type, dfd );
|
|
} );
|
|
|
|
return dfd;
|
|
};
|
|
|
|
$j( '.oceanwp-modules .btn-switcher li a' ).on( 'click', function( event ) {
|
|
event.preventDefault();
|
|
|
|
// Remove 'active' class from the previous nav list items.
|
|
$j( this ).parent().siblings().removeClass( 'active' );
|
|
|
|
// Add the 'active' class to this nav list item.
|
|
$j( this ).parent().addClass( 'active' );
|
|
|
|
var type = this.hash.slice(1);
|
|
|
|
// show/hide the right items, based on type selected
|
|
var promise = animate( type );
|
|
|
|
promise.done();
|
|
} );
|
|
|
|
$j( document ).on( 'click', '#owp-switch-all', function() {
|
|
if ( $j( this ).is( ':checked' ) ) {
|
|
$j( this ).closest( '.oceanwp-modules' ).find( 'input.owp-checkbox' ).prop( 'checked', true );
|
|
} else {
|
|
$j( this ).closest( '.oceanwp-modules' ).find( 'input.owp-checkbox' ).prop( 'checked', false );
|
|
}
|
|
} );
|
|
}());
|
|
|
|
} );
|