jQuery(function(jQuery){ jQuery.fn.gnb = function(options) { var opts = jQuery.extend(options); var gnb = jQuery(this); var gnbList = gnb.find('>ul>li'); var submenu = gnb.find('.submenu'); var submenuList = submenu.find('>ul>li'); var submenuBg = jQuery('.submenu-bg'); var header = jQuery('#header'); var heightArray = jQuery("#gnb .submenu ul").map(function(){ return jQuery(this).outerHeight(); }).get(); var maxHeight = Math.max.apply(Math, heightArray); function showMenu() { t = jQuery(this).parent('li'); if (!t.hasClass('active')) { gnbList.removeClass('active'); gnbList.bind("focus mouseover",function(){ jQuery(this).addClass("active"); }); gnbList.bind("mouseleave",function(){ jQuery(this).removeClass("active"); }); } submenuBg.show(); submenuBg.stop(true, false).animate({height:maxHeight},200, 'swing',function(){ jQuery("#gnb .submenu").height(maxHeight); submenu.fadeIn(200); }); } function showMenu2() { t = jQuery(this).parent('li'); if (!t.hasClass('active')) { gnbList.removeClass('active'); t.addClass('active'); } submenuBg.show(); submenuBg.stop(true, false).animate({height:maxHeight},200, 'swing',function(){ jQuery("#gnb .submenu").height(maxHeight); submenu.fadeIn(200); }); return false; } function hideMenu() { gnbList.removeClass('active'); submenu.fadeOut(100); submenuBg.stop(true, false).delay(100).animate({height:'0'},200, 'swing', function(){ submenuBg.hide(); }); activeMenu(); } function activeMenu() { if(opts.d1) { t = gnbList.eq(opts.d1-1); t.addClass('active'); if(opts.d2) { t.find('.submenu>ul>li').eq(opts.d2-1).addClass('active'); } } } return this.each(function() { activeMenu(); var isTablet = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|Windows Phone)/); if( !isTablet ){ gnbList.find('>a').mouseover(showMenu).focus(showMenu); }else{ gnbList.find('>a').click(showMenu2); } jQuery("#header").mouseleave(hideMenu); jQuery('.btn-menu').click(showMenu); }); } jQuery('#gnb').gnb(); });