(function($) { $.fn.menumaker = function(options) { var cssmenu = $(this), settings = $.extend({ title: "Menu", format: "dropdown", sticky: false }, options); return this.each(function() { //cssmenu.prepend('
'); $(this).find("#menu-button").on('click', function(){ $(this).toggleClass('menu-opened'); $('#header, header').toggleClass('menu-opened'); var mainmenu = $(this).next('ul'); if (mainmenu.hasClass('open')) { mainmenu.fadeOut("slow").removeClass('open'); //mainmenu.hide().removeClass('open'); } else { //mainmenu.show().addClass('open'); mainmenu.fadeIn("slow").addClass('open'); if (settings.format === "dropdown") { mainmenu.find('ul').show(); } } }); cssmenu.find('li ul').parent().parent().addClass('has-sub'); multiTg = function() { cssmenu.find(".has-sub").prepend(''); cssmenu.find('.submenu-button, .has-sub > a').on('click', function(evt) { $(this).parent().toggleClass('submenu-opened') if ($(this).parent().find('ul').hasClass('open')) { $(this).parent().find('ul').removeClass('open').hide(); } else { $(this).parent().find('ul').addClass('open').show(); } evt.stopPropagation(); return false; }); }; if (settings.format === 'multitoggle') multiTg(); else cssmenu.addClass('dropdown'); if (settings.sticky === true) cssmenu.css('position', 'fixed'); resizeFix = function() { if ($( window ).width() > 900) { cssmenu.find('#nav > ul').show(); //cssmenu.find('li ul').show(); } if ($(window).width() <= 900) { cssmenu.find('ul').hide().removeClass('open'); } }; resizeFix(); return $(window).on('resize', resizeFix); }); }; })(jQuery); (function($){ $(document).ready(function() { $("#nav").menumaker({ title: "Navigation", format: "multitoggle" }); //$("#nav").prepend(""); var foundActive = false, activeElement, linePosition = 0, menuLine = $("#nav #menu-line"), lineWidth, defaultPosition, defaultWidth; $("#nav > ul > li").each(function() { if ($(this).hasClass('current')) { activeElement = $(this); //console.log(activeElement); foundActive = true; } }); if (foundActive === false) { activeElement = $("#nav > ul > li").first(); } defaultWidth = lineWidth = activeElement.width(); defaultPosition = linePosition = activeElement.position().left; menuLine.css("width", lineWidth); menuLine.css("left", linePosition); $("#nav > ul > li").hover(function() { activeElement = $(this); lineWidth = activeElement.width(); linePosition = activeElement.position().left; menuLine.css("width", lineWidth); menuLine.css("left", linePosition); }, function() { menuLine.css("left", defaultPosition); menuLine.css("width", defaultWidth); }); }); })(jQuery);