$(function(){ var hide_menu = false; var mouse_event = false; var oldX = oldY = 0; $(document).mousemove(function(e) { if(oldX == 0) { oldX = e.pageX; oldY = e.pageY; } if(oldX != e.pageX || oldY != e.pageY) { mouse_event = true; } }); // 주메뉴 var $gnb = $(".gnb_1dli > a"); $gnb.mouseover(function() { if(mouse_event) { $("#hd").addClass("hd_zindex"); $(".gnb_1dli").removeClass("gnb_1dli_over gnb_1dli_over2 gnb_1dli_on"); $(this).parent().addClass("gnb_1dli_over gnb_1dli_on"); menu_rearrange($(this).parent()); hide_menu = false; } }); $gnb.mouseout(function() { hide_menu = true; }); $(".gnb_2dli").mouseover(function() { hide_menu = false; }); $(".gnb_2dli").mouseout(function() { hide_menu = true; }); $gnb.focusin(function() { $("#hd").addClass("hd_zindex"); $(".gnb_1dli").removeClass("gnb_1dli_over gnb_1dli_over2 gnb_1dli_on"); $(this).parent().addClass("gnb_1dli_over gnb_1dli_on"); menu_rearrange($(this).parent()); hide_menu = false; }); $gnb.focusout(function() { hide_menu = true; }); $(".gnb_2da").focusin(function() { $(".gnb_1dli").removeClass("gnb_1dli_over gnb_1dli_over2 gnb_1dli_on"); var $gnb_li = $(this).closest(".gnb_1dli").addClass("gnb_1dli_over gnb_1dli_on"); menu_rearrange($(this).closest(".gnb_1dli")); hide_menu = false; }); $(".gnb_2da").focusout(function() { hide_menu = true; }); $('#gnb_1dul>li').bind('mouseleave',function(){ submenu_hide(); }); $(document).bind('click focusin',function(){ if(hide_menu) { submenu_hide(); } }); }); function submenu_hide() { $("#hd").removeClass("hd_zindex"); $(".gnb_1dli").removeClass("gnb_1dli_over gnb_1dli_over2 gnb_1dli_on"); } function menu_rearrange(el) { var width = $("#gnb_1dul").width(); var left = w1 = w2 = 0; var idx = $(".gnb_1dli").index(el); var max_menu_count = 0; var $gnb_1dli; for(i=0; i<=idx; i++) { $gnb_1dli = $(".gnb_1dli:eq("+i+")"); w1 = $gnb_1dli.outerWidth(); if($gnb_1dli.find(".gnb_2dul").size()) w2 = $gnb_1dli.find(".gnb_2dli > a").outerWidth(true); else w2 = w1; if((left + w2) > width) { if(max_menu_count == 0) max_menu_count = i + 1; } var prSize=el.width(); $gnb_1dli.find(".gnb_2dli > a").css("width",prSize); if(max_menu_count > 0 && (idx + 1) % max_menu_count == 0) { el.removeClass("gnb_1dli_over").addClass("gnb_1dli_over2"); left = 0; } else { left += w1; } } }