/** * Sidebar JS * * Adds a toggle icon with slide animation for the sidebar on mobile devices * * Copyright 2015 ThemeZee * Free to use under the GPLv2 and later license. * http://www.gnu.org/licenses/gpl-2.0.html * * Author: Thomas Weichselbaumer (themezee.com) * * @package Admiral */ (function($) { /**-------------------------------------------------------------- # Responsive Sidebar --------------------------------------------------------------*/ $.fn.responsiveSidebar = function( options ) { if ( options === undefined ) { options = {}; } /* Set Defaults */ var defaults = { toggleID: "sidebar-toggle", maxWidth: "400px" }; /* Set Variables */ var vars = $.extend( {}, defaults, options ), toggleID = vars.toggleID, maxWidth = vars.maxWidth, $sidebar = $( this ); /* Add sidebar toggle effect */ $( '#' + toggleID ).on('click', function(){ $( this ).toggleClass( 'active' ); if ( $sidebar.is( ':visible' ) ) { hideSidebar(); } else { showSidebar(); } }); /* Close Sidebar when title is clicked */ $sidebar.find( '.sidebar-header' ).on('click', function(){ $( this ).toggleClass( 'active' ); if ( $sidebar.is( ':visible' ) ) { hideSidebar(); } }); /* Show sidebar and fade content area */ function showSidebar() { $sidebar.show(); $sidebar.animate( { 'max-width': maxWidth }, 300 ); $( '#' + toggleID ).hide(); } /* Hide sidebar and show full content area */ function hideSidebar() { $sidebar.animate({ 'max-width': '0' }, 300, function(){ $sidebar.hide(); }); $( '#' + toggleID ).show(); } /* Reset sidebar on desktop screen sizes */ function resetSidebar() { $sidebar.show(); $sidebar.css( { 'max-width': '100%' } ); } }; /**-------------------------------------------------------------- # Setup Sidebars --------------------------------------------------------------*/ $( document ).ready( function() { /* Add sidebar toggles */ $( '#primary' ).prepend( '' ); $( '#primary' ).prepend( '' ); /* Setup Main Sidebar */ $( ".main-sidebar" ).responsiveSidebar({ toggleID: "main-sidebar-toggle", maxWidth: "350px" }); /* Setup Small Sidebar */ $( ".small-sidebar" ).responsiveSidebar({ toggleID: "small-sidebar-toggle", maxWidth: "280px" }); } ); }(jQuery));