1/* 2Ace Responsive Menu Plugin 3Version: 1.0 4Author: Samson.Onna 5Email : [email protected] 6----------------------------------------*/ 7 8(function ($) { 9 $.fn.aceResponsiveMenu = function (options) { 10 11 //plugin's default options 12 var defaults = { 13 resizeWidth: '768', 14 animationSpeed: 'fast', 15 accoridonExpAll: false 16 }; 17 18 //Variables 19 var options = $.extend(defaults, options), 20 opt = options, 21 $resizeWidth = opt.resizeWidth, 22 $animationSpeed = opt.animationSpeed, 23 $expandAll = opt.accoridonExpAll, 24 $aceMenu = $(this), 25 $menuStyle = $(this).attr('data-menu-style'); 26 27 // Initilizing 28 $aceMenu.find('ul').addClass("sub-menu"); 29 $aceMenu.find('ul').siblings('a').append('<a href="javascript:void(0);" class="arrow "></a>'); 30 if ($menuStyle == 'accordion') { $(this).addClass('collapse'); } 31 32 // Window resize on menu breakpoint 33 if ($(window).innerWidth() <= $resizeWidth) { 34 menuCollapse(); 35 } 36 $(window).resize(function () { 37 menuCollapse(); 38 }); 39 40 41 42 43 44 // Menu Toggle 45 function menuCollapse() { 46 var w = $(window).innerWidth(); 47 48 try { 49 // $(".is-wrapper > div").css("margin-top", $("#site-header").height() +"px"); 50 } 51 catch(ex) {} 52 53 if (w <= $resizeWidth) { 54 $aceMenu.find('li.menu-active').removeClass('menu-active'); 55 $aceMenu.find('ul.slide').removeClass('slide').removeAttr('style'); 56 $aceMenu.addClass('collapse hide-menu'); 57 $aceMenu.attr('data-menu-style', ''); 58 $('.menu-toggle').show(); 59 } else { 60 $aceMenu.attr('data-menu-style', $menuStyle); 61 $aceMenu.removeClass('collapse hide-menu').removeAttr('style'); 62 $('.menu-toggle').hide(); 63 if ($aceMenu.attr('data-menu-style') == 'accordion') { 64 $aceMenu.addClass('collapse'); 65 return; 66 } 67 $aceMenu.find('li.menu-active').removeClass('menu-active'); 68 $aceMenu.find('ul.slide').removeClass('slide').removeAttr('style'); 69 } 70 71 } 72 73 //ToggleBtn Click 74 $('#menu-btn').click(function () { 75 $aceMenu.slideToggle().toggleClass('hide-menu'); 76 }); 77 78 79 // Main function 80 return this.each(function () { 81 // Function for Horizontal menu on mouseenter 82 $aceMenu.on('mouseover', '> li a', function () { 83 if ($aceMenu.hasClass('collapse') === true) { 84 return false; 85 } 86 $(this).off('click', '> li a'); 87 $(this).parent('li').siblings().children('.sub-menu').stop(true, true).slideUp($animationSpeed).removeClass('slide').removeAttr('style').stop(); 88 $(this).parent().addClass('menu-active').children('.sub-menu').slideDown($animationSpeed).addClass('slide'); 89 return; 90 }); 91 $aceMenu.on('mouseleave', 'li', function () { 92 if ($aceMenu.hasClass('collapse') === true) { 93 return false; 94 } 95 $(this).off('click', '> li a'); 96 $(this).removeClass('menu-active'); 97 $(this).children('ul.sub-menu').stop(true, true).slideUp($animationSpeed).removeClass('slide').removeAttr('style'); 98 return; 99 }); 100 //End of Horizontal menu function 101 102 // Function for Vertical/Responsive Menu on mouse click 103 $aceMenu.on('click', '> li a', function () { 104 //if ($aceMenu.hasClass('collapse') === true) { 105 // return false; 106 //} 107 $(this).off('mouseover', '> li a'); 108 109 if ($(this).parent().hasClass('menu-active')) { 110 $(this).parent().children('.sub-menu').slideUp().removeClass('slide'); 111 $(this).parent().removeClass('menu-active'); 112 } else { 113 if ($expandAll == true) { 114 $(this).parent().addClass('menu-active').children('.sub-menu').slideDown($animationSpeed).addClass('slide'); 115 return; 116 } 117 $(this).parent().siblings().removeClass('menu-active'); 118 $(this).parent('li').siblings().children('.sub-menu').slideUp().removeClass('slide'); 119 $(this).parent().addClass('menu-active').children('.sub-menu').slideDown($animationSpeed).addClass('slide'); 120 } 121 }); 122 //End of responsive menu function 123 124 }); 125 //End of Main function 126 } 127})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.