diff --git a/resources/js/menu.js b/resources/js/menu.js new file mode 100644 index 0000000000000000000000000000000000000000..d12d55665be3e644220f0d9be371a34356179077 --- /dev/null +++ b/resources/js/menu.js @@ -0,0 +1,81 @@ +var $_expandedItems, $_allMenuItems, $_navIcon; +var _expandedClass = "et-expanded"; +var _menuPauseTime = 1000; +var _menuTimeout; + +function toggleWholeMenu(){ + var $expandedItems = getExpandedItems(); + if($expandedItems) { + collapseMenu($expandedItems); + } else { + expandMenu($_allMenuItems); + } +} + +function expandMenu($elements) { + $elements.addClass(_expandedClass); + $_expandedItems = $elements; +} + +function collapseMenu($expandedItems) { + $expandedItems.removeClass(_expandedClass); +} + +function isWide() { + return $_navIcon.is(':hidden'); +} + +function getExpandedItems() { + var $expandedItems = $("." + _expandedClass); + if($expandedItems.length == 0) { + $expandedItems = undefined; + } + return $expandedItems; +} + + +$(function(){ + $_navIcon = $(".nav-icon"); + $_allMenuItems = $(".et-first-option, .et-option, .et-last-option, .et-submenu"); + + $(window).resize(function() { + collapseMenu($_allMenuItems); + }); + + $(".et-has-children").mouseover(function(){ + if(isWide()){ + clearTimeout(_menuTimeout); + collapseMenu($_allMenuItems); + expandMenu($(this)); + } + }); + + $(".et-has-children").mouseout(function(){ + if(isWide()){ + _menuTimeout = setTimeout(function(){ + collapseMenu($_allMenuItems); + }, _menuPauseTime); + } + }); + + $(".et-submenu").mouseover(function(){ + clearTimeout(_menuTimeout); + }); + + $(".et-submenu").mouseover(function(){ + if(isWide()){ + collapseMenu($_allMenuItems); + } + }); + + $(".no-children").mouseover(function(){ + if(isWide()){ + collapseMenu($_allMenuItems); + } + }); + + $($_navIcon).click(function(){ + toggleWholeMenu(); + }); + +});