1(function ($) { 2 "use strict"; 3 4 // Push Menu 5 $.fn.pushMenu = function (customOptions) { 6 var o = $.extend({}, $.fn.pushMenu.defaultOptions, customOptions); 7 8 // Back Layer ì¶ê° 9 $('<div id="js-push-nav-back" class="push-nav-back"></div>').appendTo('body'); 10 11 var _body = $('body'), 12 _layout_body = $('#js-layout-body'), 13 _push_aside = $('#js-push-nav'), 14 _push_aside_back = $('#js-push-nav-back'), 15 _this = $(this); 16 17 // push bodyì¸ ê²½ì° 18 if ($(this).is('.' + o.pushBodyClass)) { 19 _body.addClass(o.pushBodyClass); 20 } 21 22 var target = '', 23 push_direction = ''; 24 25 // Determine menu and push direction 26 if ($(this).is('.' + o.showLeftClass)) { 27 target = '.menu-left'; 28 push_direction = 'toright'; 29 } else if ($(this).is('.' + o.showRightClass)) { 30 target = '.menu-right'; 31 push_direction = 'toleft'; 32 } else if ($(this).is('.' + o.showTopClass)) { 33 target = '.menu-top'; 34 } else if ($(this).is('.' + o.showBottomClass)) { 35 target = '.menu-bottom'; 36 } else if ($(this).is('.' + o.showFullClass)) { 37 target = '.menu-full'; 38 } 39 if (target == '') { 40 return; 41 } 42 43 $(this).click(function (e) { 44 e.stopPropagation(); 45 46 $(this).toggleClass(o.activeClass); 47 $(target).toggleClass(o.activeClass); 48 _body.toggleClass(o.activeClass); 49 50 // í°ì¹ì¤í¬ë¡¤ ìì¹ ë¦¬ì 51 _push_aside.scrollTop(0); 52 53 if ($(this).is('.' + o.pushBodyClass) && push_direction != '') { 54 _body.toggleClass(o.pushBodyClass + '-' + push_direction); 55 } 56 57 //_layout_body.css('opacity','0'); 58 59 // Back Layer 60 _push_aside_back.fadeToggle(); // toggleClassë ì¬ì©ì ë ì´ì´ ë¤ ë²í¼ì´ í´ë¦ ëë 문ì ìì 61 62 if ($(this).hasClass(o.activeClass)) {
63 // í°ì¹ì¤í¬ë¡¤ë°©ì§ 64 _layout_body.on('touchstart touchmove', function (e) { 65 e.preventDefault(); 66 e.stopPropagation(); 67 return false; 68 }); 69 } else { 70 pushMenu.close(o); 71 } 72 73 return; 74 }); 75 76 var pushMenu = { 77 close: function (o) { 78 _body.removeClass(o.activeClass + ' ' + o.pushBodyClass + '-toleft ' + o.pushBodyClass + '-toright'); 79 $(target).removeClass(o.activeClass + ' ' + o.pushBodyClass + '-toleft ' + o.pushBodyClass + '-toright'); 80 _this.removeClass(o.activeClass); 81 82 // Back Layer ìì 83 _push_aside_back.fadeOut(); 84 85 // í°ì¹ì¤í¬ë¡¤ë°©ì§ í´ì 86 _layout_body.off('touchstart touchmove'); 87 88 } 89 } 90 91 // Close menu on clicking outside menu 92 if (o.closeOnClickOutside) { 93 _push_aside_back.on('click touchstart', function () { 94 pushMenu.close(o); 95 }); 96 } 97 // Close menu on clicking menu link 98 if (o.closeOnClickLink) { 99 _push_aside.find('.close-push-nav').on('click', function () { 100 pushMenu.close(o); 101 }); 102 } 103 }; 104 $.fn.pushMenu.defaultOptions = { 105 bodyClass: 'push', 106 activeClass: 'push-active', 107 showLeftClass: 'push-menu-left', 108 showRightClass: 'push-menu-right', 109 showTopClass: 'push-menu-top', 110 showBottomClass: 'push-menu-bottom', 111 showFullClass: 'push-menu-full', 112 pushBodyClass: 'push-body',
113 closeOnClickOutside: true, 114 closeOnClickLink: true 115 }; 116 117 // ì¤í¬ë¡¤ì Header 118 function headerscroll() { 119 let header__fixed = $('#js-header-fixed'); 120 let header__hight = header__fixed.outerHeight(); 121 let lastScrollTop = 0; 122 let delta = 60; 123 let isScrolling = false; 124 125 $(window).on('scroll', function () { 126 isScrolling = true; 127 }).trigger('scroll'); 128 129 function hasScrolled() { 130 let st = $(window).scrollTop(); 131 132 if (Math.abs(lastScrollTop - st) <= delta) return; 133 134 if (st > lastScrollTop) { 135 header__fixed.removeClass('is-down').addClass('is-up'); 136 } else { 137 if ((st + $(window).height()) < $(document).height()) { 138 header__fixed.removeClass('is-up').addClass('is-down'); 139 } 140 if (st < delta) { 141 header__fixed.removeClass('is-down is-up'); 142 } 143 } 144 145 lastScrollTop = st; 146 } 147 148 function scrollHandler() { 149 if (isScrolling) { 150 hasScrolled(); 151 isScrolling = false; 152 } 153 154 requestAnimationFrame(scrollHandler); 155 } 156 157 scrollHandler(); 158 } 159 160 $(document).ready(function () { 161 162 headerscroll(); 163 $('[rel="js-gnb-toggle-btn"]').pushMenu(); 164 165 // 모ë°ì¼ ë©ë´ í 166 let pushNavContainer = $('[rel="js-push-nav__container"]'); 167 let pushNavList = pushNavContainer.find('.push-nav__list'); 168 let pushNavListItems = pushNavList.find('li.child').children('a'); 169 let pushNavListChilds = pushNavContainer.find('.push-nav__list-child>ul'); 170 pushNavListItems.on('click', function () { 171 pushNavListChilds.hide(); 172 pushNavList.find('a.is-active').removeClass('is-active'); 173 $(this).addClass('is-active'); 174 var tab_cont = $(this).data('tab'); 175 $(tab_cont).fadeIn(); 176 return false; 177 }); 178 if (pushNavList.find('li a').hasClass('is-active')) { 179 pushNavList.find('li a.is-active').click(); 180 } else { 181 pushNavList.find('li:first-child a').click(); 182 } 183 184 }); 185 186})(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.