/** * jQuery Navigation Plugin * Includes responsiveMenu() function * * 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 Poseidon */ (function($) { /**-------------------------------------------------------------- # Responsive Navigation for WordPress menus --------------------------------------------------------------*/ $.fn.responsiveMenu = function( options ) { if (options === undefined) options = {}; /* Set Defaults */ var defaults = { menuClass: "menu", toggleClass: "menu-toggle", toggleText: "", maxWidth: "60em" }; /* Set Variables */ var vars = $.extend({}, defaults, options), menuClass = vars.menuClass, toggleID = (vars.toggleID) ? vars.toggleID : vars.toggleClass, toggleClass = vars.toggleClass, toggleText = vars.toggleText, maxWidth = vars.maxWidth, $this = $(this), $menu = $('.' + menuClass); /********************* * Desktop Navigation * **********************/ /* Set and reset dropdown animations based on screen size */ if(typeof matchMedia == 'function') { var mq = window.matchMedia('(max-width: ' + maxWidth + ')'); mq.addListener(widthChange); widthChange(mq); } function widthChange(mq) { if (mq.matches) { /* Reset desktop navigation menu dropdown animation on smaller screens */ $menu.find('ul').css({display: 'block'}); $menu.find('li ul').css({visibility: 'visible', display: 'block'}); $menu.find('li').unbind('mouseenter mouseleave'); $menu.find('li.menu-item-has-children ul').each( function () { $( this ).hide(); $(this).parent().find('.submenu-dropdown-toggle').removeClass('active'); } ); } else { /* Add dropdown animation for desktop navigation menu */ $menu.find('ul').css({display: 'none'}); $menu.find('li').hover(function(){ $(this).find('ul:first').css({visibility: 'visible',display: 'none'}).slideDown(300); },function(){ $(this).find('ul:first').css({visibility: 'hidden'}); }); } } /******************** * Mobile Navigation * *********************/ /* Add Menu Toggle Button for mobile navigation */ $this.before(''); /* Add dropdown toggle for submenus on mobile navigation */ $menu.find('li.menu-item-has-children').prepend(''); /* Add dropdown slide animation for mobile devices */ $('#' + toggleID).on('click', function(){ $menu.slideToggle(); $(this).toggleClass('active'); }); /* Add dropdown animation for submenus on mobile navigation */ $menu.find('li.menu-item-has-children ul').each( function () { $( this ).hide(); } ); $menu.find('.submenu-dropdown-toggle').on('click', function(){ $(this).parent().find('ul:first').slideToggle(); $(this).toggleClass('active'); }); }; /**-------------------------------------------------------------- # Setup Navigation Menus --------------------------------------------------------------*/ $( document ).ready( function() { /* Setup Main Navigation */ $("#main-navigation").responsiveMenu({ menuClass: "main-navigation-menu", toggleClass: "main-navigation-toggle", maxWidth: "60em" }); /* Setup Top Navigation */ $("#top-navigation").responsiveMenu({ menuClass: "top-navigation-menu", toggleClass: "top-navigation-toggle", maxWidth: "60em" }); /* Setup Footer Navigation */ $("#footer-links").responsiveMenu({ menuClass: "footer-navigation-menu", toggleClass: "footer-navigation-toggle", maxWidth: "60em" }); /* Add Sticky Header Margin to Content*/ $('.sticky-header .site-header').after('
') function resizeHeader() { $(".site-header-push").height( $( ".sticky-header .site-header" ).height() ); } $(document).ready(resizeHeader); $(window).resize(resizeHeader); } ); }(jQuery));