// 사이트업 전용 jQuery 프로그램 $(function() { // gnb, lnb 마크업 추가 $('.ABA-gnb a').append(''); $('.ABA-lnb-box a').append(''); $('.ABA-head-lnb').append('
'); $('.ABA-body-lnb').after('
'); $('.ABA-lnb').before('
').after('
'); $('.ABA-lnb-sub').before('
').after('
'); $('.ABA-gnb > li > div > ul').before('
').after('
'); $('.ABA-gnb-sub-1 > ul > li > ul').wrap('
').before('
').after('
'); // gnb var gnb_wrap = $('.ABA-gnb-wrap'); var gnb_wrap_width = gnb_wrap.width(); var gnb_li = $('.ABA-gnb > li'), gnb_sub_1 = $('.ABA-gnb-sub-1'), gnb = gnb_li.parent(); var gnb_width = gnb.width(); var gnb_li_all = $('div.ABA-gnb-sub-1 li'); var gnb_sub_2 = $('div.ABA-gnb-sub-2'); var gnb_sub_2_ul = $('ul.ABA-gnb-sub-2-ul'); var gnb_v = 'N', gnb_s = 'N', gnb_w = 'N', fix_1 = 'N', fix_2 = fix_leave = 'N'; var current_gnb = $('.AB-current-gnb'); var current_gnb_sub_1 = gnb.find('.AB-current-gnb>.ABA-gnb-sub-1'); if (gnb_wrap.hasClass('GNB-v')) gnb_v = 'Y'; if (gnb_wrap.hasClass('GNB-s')) gnb_s = 'Y'; if (gnb_wrap.hasClass('GNB-w')) gnb_w = 'Y'; if (gnb_wrap.hasClass('fix-1')) fix_1 = 'Y'; if (gnb_wrap.hasClass('fix-2')) fix_2 = 'Y'; if (gnb_wrap.hasClass('fix-leave')) fix_leave = 'Y'; if (browser_type == 'IE6') gnb_s = 'N'; gnb_sub_2_ul.css('display', 'block'); // IE 에서 보였다 사라지는 현상을 없애기 위해 style.css 파일에서 display:none 해 놓은 것을 ABA-gnb-sub-2 를 hidden 으로 감싼 후에 block 처리 함. // GNB 메뉴 위치 설정 var zidx = 1000; var chg_left = 0; gnb_li.each(function() { // GNB
  • 개수 만큼 var this_gnb_sub_1 = $('div', $(this)).eq(0); var this_gnb_sub_1_width = this_gnb_sub_1.width(); var this_left = $(this).position().left; if (this_left + this_gnb_sub_1_width >= gnb_width) { // GNB
  • 좌측위치 + GNB 서브 가로폭 >= GNB 가로폭 (GNB 서브메뉴가 GNB 우측 영역을 벗어나는 경우) var xy = this_left + this_gnb_sub_1_width - gnb_width; // 우측 끝 선에 맞춤 this_gnb_sub_1.css('left', this_left-xy-5); } else { // 벗어나지 않는 경우 if (gnb_w == 'N') { // 일반 gnb-sub this_gnb_sub_1.css('left', this_left); // 상위 li left 에 맞춤 } else { // 와이드 gnb-sub if (chg_left == 0) chg_left = this_left; // 겹치지 않는 경우 상위 li 에 맞춤 this_gnb_sub_1.css('left', Math.max(chg_left, this_left)); // 겹치는 경우 겹치지 않도록 조정된 left 에 맞춤 if (this_gnb_sub_1_width != null || this_gnb_sub_1_width > $(this).width()) chg_left += this_gnb_sub_1_width; // 이전 ul width 값 만큼 더함 else chg_left = 0; // 이전 ul 이 없거나 작으면 0 으로 세팅하여 다음 번 루틴 때 상위 li left 값 배정 } } this_gnb_sub_1.css('z-index', zidx); zidx--; }); if (gnb_v == 'Y') { // 수직으로 펼쳐지는 GNB인 경우 var parent_gnb_sub_2; // 서브2차 노출 위치 설정 gnb_sub_2.each(function() { parent_gnb_sub_2 = $(this).parents('div.ABA-gnb-sub-1'); $(this).css('left', parent_gnb_sub_2.width()); $(this).css('top', '0'); }); gnb.find('div[class*=ABA-gnb-sub]').addClass('AB-live-menu'); // 펼쳐질 서브메뉴(ul) 들에 클래스 주입, 이미 펼쳐진 서브메뉴는 제외 } else { // 수평으로 펼쳐지는 GNB인 경우 current_gnb_sub_1.removeClass('AB-hidden').addClass('AB-show'); gnb.find('div[class*=ABA-gnb-sub]:not(.AB-show)').addClass('AB-live-menu'); // 펼쳐질 서브메뉴(ul) 들에 클래스 주입, 이미 펼쳐진 서브메뉴는 제외 } // 마우스 오버/아웃시 메뉴노출 설정 var gnb_a_all = gnb.find('li>a'); if (gnb_s == 'Y') { // 슬라이드 메뉴인 경우 gnb_a_all.mouseover(m_over_slide).focus(m_over_slide); // 각 메뉴의 링크에 마우스를 올렸을 때 m_over_slide 함수 호출 gnb.mouseleave(function() { // gnb 영역에서 마우스가 벗어났을 때 if (gnb_v == 'Y') gnb.find('div[class*=ABA-gnb-sub]').hide('fast').addClass('AB-live-menu'); else gnb.find('div[class*=ABA-gnb-sub]:not(.AB-show)').hide('fast').addClass('AB-live-menu'); if (gnb_v != 'Y' && current_gnb_sub_1.hasClass('AB-show')) current_gnb_sub_1.show('fast').removeClass('AB-live-menu'); if (gnb_w == 'Y') $('.AB-wide-gnb-sub').hide('fast'); }); } else { gnb_a_all.mouseover(m_over_display).focus(m_over_display); gnb.mouseleave(function() { if (gnb_v == 'Y') gnb.find('div').css('display', 'none').addClass('AB-live-menu'); else gnb.find('div[class*=ABA-gnb-sub]:not(.AB-show)').css('display', 'none').addClass('AB-live-menu'); if (gnb_v != 'Y' && current_gnb_sub_1.hasClass('AB-show')) current_gnb_sub_1.css('display', 'block').removeClass('AB-live-menu'); if (gnb_w == 'Y') $('.AB-wide-gnb-sub').css('display', 'none'); }); } gnb_li.mouseover(function() { // 마우스오버시 current_gnb.addClass('TCGNB'); // 현재 메뉴 복원 표시 달기 if (fix_leave != 'Y') current_gnb.removeClass('AB-current-gnb'); // 현재 메뉴 표시 제거 $(this).addClass('AB-current-gnb'); // 오버된 메뉴에 현재 메뉴 표시 }); gnb_li.click(function() { // AJAX="Y" 활성시 필요 $('.TCGNB').removeClass('TCGNB'); $(this).addClass('TCGNB'); if (fix_leave != 'Y') $('.AB-current-gnb').removeClass('AB-current-gnb'); $(this).addClass('AB-current-gnb'); }); gnb_li.mouseleave(function() { // 마우스 아웃시 if ($(this).hasClass('TCGNB')) return; // 현재 메뉴인 경우 표시 변경 없음 $(this).removeClass('AB-current-gnb'); // 현재 메뉴 표시 제거 current_gnb = $('.TCGNB'); // 복원 표시된 메뉴 찾기 current_gnb.addClass('AB-current-gnb'); // 현재 메뉴 복원 current_gnb.removeClass('TCGNB'); // 복원표시 제거 }); // lnb var lnb_li = $('.ABA-lnb > li'), lnb_sub = $('.ABA-lnb-sub'); lnb_li.mouseover(function() { $('ul', $(this)).eq(0).show('fast'); }); lnb_li.click(function() { // AJAX="Y" 활성시 필요 $('.AB-current-lnb').removeClass('AB-current-lnb'); $(this).addClass('AB-current-lnb'); }); function m_over_slide(){ var gnb_a = $(this); var parent_ul = gnb_a.parent('li').parent('ul'); var next_gnb_sub = gnb_a.next('div[class*=ABA-gnb-sub]'); if (gnb_w != 'Y') { if (next_gnb_sub.hasClass('AB-live-menu')) { if (fix_leave != 'Y') parent_ul.children().children('div[class*=ABA-gnb-sub]').hide('fast').addClass('AB-live-menu'); next_gnb_sub.show('fast').removeClass('AB-live-menu'); } else if (!next_gnb_sub.length) { if (fix_leave != 'Y') parent_ul.children().children('div[class*=ABA-gnb-sub]').hide('fast').addClass('AB-live-menu'); } } else { if (parent_ul.hasClass('ABA-gnb')) { $('.AB-wide-gnb-sub').show('fast'); gnb_sub_1.show('fast'); } else if (parent_ul.children().children('div[class*=ABA-gnb-sub]').length > 0) { if (next_gnb_sub.css('display') != 'block') { gnb_sub_2.hide('fast'); next_gnb_sub.show('fast'); } } } } function m_over_display(){ var gnb_a = $(this); var parent_ul = gnb_a.parent('li').parent('ul'); var next_gnb_sub = gnb_a.next('div[class*=ABA-gnb-sub]'); if (gnb_w != 'Y') { if (next_gnb_sub.hasClass('AB-live-menu')) { if (fix_leave != 'Y') parent_ul.children().children('div[class*=ABA-gnb-sub]').css('display', 'none').addClass('AB-live-menu'); next_gnb_sub.css('display', 'block').removeClass('AB-live-menu'); } else if (!next_gnb_sub.length) { if (fix_leave != 'Y') parent_ul.children().children('div[class*=ABA-gnb-sub]').css('display', 'none').addClass('AB-live-menu'); } } else { if (parent_ul.hasClass('ABA-gnb')) { $('.AB-wide-gnb-sub').css('display', 'block'); gnb_sub_1.css('display', 'block'); } else if (parent_ul.children().children('div[class*=ABA-gnb-sub]').length > 0) { if (next_gnb_sub.css('display') != 'block') { gnb_sub_2.css('display', 'none'); next_gnb_sub.css('display', 'block'); } } } } // 와이드 gnb 서브인 경우 마크업 추가, 본 위치 유지 if (gnb_w == 'Y') { var wide_gnb_sub = gnb_li.find('div.ABA-gnb-sub-1').eq(0); wide_gnb_sub.wrap('
    '); gnb_sub_2.mouseleave(function() { $(this).hide('fast'); }); } // 메뉴고정 옵션 처리 if (fix_1 == 'Y') { gnb_sub_1.removeClass('AB-hidden').addClass('AB-show'); gnb.unbind("mouseleave"); gnb_li.unbind("mouseover").unbind("mouseleave"); $('.GNB-a').unbind("mouseover").unbind("focus"); } if (fix_2 == 'Y') { gnb_sub_2.removeClass('AB-hidden').addClass('AB-show'); gnb.unbind("mouseleave"); gnb_sub_1.find('li>a').unbind("mouseover").unbind("focus"); } // 새글등록버튼 클릭 시 $('.btn_new_article').css('cursor', 'pointer'); $('.btn_new_article').click( function() { $('#global_dialog').attr('title', "새 글을 등록할 코너를 선택하세요"); $('#global_dialog').load('insiter.php?design_file=article_new_pop.php').dialog( { modal: true, width:400, height:500 /*buttons: [ { text: "Ok", click: function() { $(this).dialog("close"); } } ]*/ } ); } ); });