PageSourceSearch

https://www.ifez.go.kr/lib/js/main/script.js?v=94616

js ifez.go.kr collected 2026-09-24 20:02:47 UTC 23,071 bytes, 899 lines download raw bytes

1// **************************************** //
2//  Name : IFEZ 전면개편
3// **************************************** //
4
5$(function(){
6	htmlLoad(); // 화면 로드시 껌박임 현상 대응
7	sub_head_utile(); // 서브 헤더 유틸
8	goTop(); // go Top
9	resizeDoneProcess();
10	gnb();
11	tabFunc(); // tab
12	side_nav(); // 사이드 메뉴
13	runAOS(); // AOS
14	accordion(); // 아코디언
15	uiDatepicker(); // uiDatepicker
16	main_screen_slide();
17	main_sns_slide();
18	main_banner1();
19	main_banner2();
20	online_reservation_slide();
21	logo_banner_slide();
22	reservation_slide();
23	history();
24	office_guide();
25	//responsive_table_scroll_guide();
26	partner_banner();
27	symposium_event_select();
28	skipNaviHashMove();
29	accessibility();
30});
31
32// 화면 로드시 껌박임 현상 대응
33function htmlLoad(){
34	$('html').removeClass('no-js');
35}
36
37// modal
38function modalOpen(_modalName) {
39	var _modalName = $(_modalName);
40	_modalName.addClass('show');
41	$('body').addClass('noscroll');
42	
43	if($(_modalName).find('.modal_foot').length == 1){
44		$(_modalName).addClass('hasFoot');
45	}
46	if($(_modalName).find('.modal_head').length == 1){
47		$(_modalName).addClass('hasHead');
48	}
49}
50
51function modalClose(_this) {
52	var _this = $(_this);
53	_this.parents('.cm_modal').removeClass('show');
54	$('body').removeClass('noscroll');
55	
56	if($('.modal.show').length >= 1){
57		$('body, html').addClass('noscroll');
58	} else {
59		$('body, html').removeClass('noscroll');
60	}
61}
62
63function sub_head_utile() {
64	$('.sub_page_head .utile_itme_list > li > a').on('click', function(){
65		if($(this).next('.sub_item').length > 0){
66			$(this).toggleClass('active');
67			$(this).next('.sub_item').slideToggle(200);
68		}
69	});
70}
71
72function swiper_play_control(btn, slide){
73	var btn = $(btn);
74	var slide_el = document.querySelector(slide).swiper;
75
76	if(slide_el.autoplay.running){
77		slide_el.autoplay.stop();
78		btn.attr('class','control_btn play');
79		btn.text('재생');
80	} else {
81		slide_el.autoplay.start();
82		btn.attr('class','control_btn pause');
83		btn.text('정지');
84	}
85}
86
87function setupSwiperAutoplay(slideSelector, btnSelector) {
88	var slideElement = document.querySelector(slideSelector);
89	if (!slideElement || !slideElement.swiper) {
90		return;
91	}
92	var slideInstance = slideElement.swiper;
93
94	var btn = $(btnSelector);
95	if (!btn.length) {
96		console.warn("Button element not found: " + btnSelector);
97		return;
98	}
99
100	$(slideSelector + ' .swiper-slide a').on('focus', function() {
101		slideInstance.autoplay.stop();
102
103		var focusedSlideIndex = $(this).closest('.swiper-slide').index();
104		slideInstance.slideTo(focusedSlideIndex, 500);
105	});
106
107	slideInstance.on('autoplayStart', function() {
108		console.log("재생");
109		btn.attr('class', 'control_btn pause');
110		btn.text('정지');
111	});
112
113	slideInstance.on('autoplayStop', function() {
114		console.log("정지");
115		btn.attr('class', 'control_btn play');
116		btn.text('재생');
117	});
118}
119
120// go Top
121function goTop() {
122	$('.footer .btn_top').click(function() {
123		$('html, body').animate({scrollTop: 0}, function() {
124           $('#skipNavi a').first().focus();
125       });
126	});
127	$(window).bind('load scroll', function() {
128		var currentScrollValue = $(window).scrollTop();
129		if(currentScrollValue > 0) {
130			$('.footer .btn_top').addClass('active');
131		} else {
132			$('.footer .btn_top').removeClass('active');
133		}
134	});
135}
136
137function viewport() {
138	let e = window,
139		a = 'inner';
140	if (!('innerWidth' in window)) {
141		a = 'client';
142		e = document.documentElement || document.body;
143	}
144	return {
145		width: e[a + 'Width'],
146		height: e[a + 'Height']
147	};
148}
149
150function gnb() {
151	let header = $('.header');
152	let windowWidth = viewport().width;
153
154	gnb_scroll();
155
156	let gnbUI = {
157		click: function(target, speed) {
158			let _self = this,
159				$target = $(target);
160			_self.speed = speed || 300;
161			$target.each(function() {
162				if (findChildren($(this))) {
163					return;
164				}
165			});
166
167			function findChildren(obj) {
168				return obj.find('> ul').length > 0;
169			}
170
171			$target.on('click', 'a', function(e) {
172				e.stopPropagation();
173				let $this = $(this),
174					$depthTarget = $this.next(),
175					$siblings = $this.parent().siblings();
176
177				$siblings.removeClass('active');
178				$this.parent().addClass('active');
179				$siblings.find('.gnb_depth2_slide').hide();
180				$depthTarget.show();
181
182				if ($depthTarget.length > 0) {
183					e.preventDefault();
184				}
185			});
186		},
187		hover: function(target, speed) {
188			let _self = this,
189				$target = $(target);
190			_self.speed = speed || 300;
191			$target.each(function() {
192				if (findChildren($(this))) {
193					return;
194				}
195			});
196
197			function findChildren(obj) {
198				return obj.find('> ul').length > 0;
199			}
200
201			header.on('mouseleave', function() {
202				header.removeClass('hover');
203				$('.gnb_depth2_slide').hide();
204			});
205
206			header.find('.gnb_depth1 > li:last-child .gnb_depth2 > li:last-child .gnb_depth3 > li:last-child > a').on('focusout.gnb', function(event) {
207				header.removeClass('hover');
208				$('.gnb_depth2_slide').hide();
209			});
210
211			$target.on('mouseenter focusin', 'a', function(e) {
212				let $this = $(this),
213					$depthTarget = $this.next(),
214					$siblings = $this.parent().siblings();
215				
216				header.addClass('hover');
217				$siblings.find('.gnb_depth2_slide').hide();
218				$depthTarget.show();
219			});
220		}
221	};
222
223	$(window).scroll(function() {
224		gnb_scroll();
225	});
226
227	if (windowWidth > 1280) {
228		//pc
229		$('.header').removeClass('active');
230		$('.header').removeClass('hover');
231		$('.gnb_depth2_slide').hide();
232		$('.gnb li, .gnb li a').off();
233		$('.gnb ul').removeAttr('style');
234		$('.gnb_depth2_slide').removeAttr('style');
235		$('body').removeClass('no_scroll');
236
237		gnbUI.hover('.gnb li', 300);
238	} else {
239		//mobile
240		header.off('mouseenter mouseleave');
241
242		$('.gnb li, .gnb li a').off('mouseenter focusin');
243
244		$('.mobile_open_btn').on('click', function() {
245			$('.header').addClass('active');
246			$('body').addClass('no_scroll');
247		});
248
249		$('.mobile_close_btn').on('click', function() {
250			$('.header').removeClass('active');
251			$('body').removeClass('no_scroll');
252		});
253
254		gnbUI.click('.gnb li', 300);
255	}
256}
257
258function gnb_scroll() {
259	var header = $('.header');
260	if ($(this).scrollTop() > 0) {
261		header.addClass('scroll');
262	} else {
263		header.removeClass('scroll');
264	}
265}
266
267function resizeDoneProcess() {
268	let delta = 0;
269	let timer = null;
270	$(window).on('resize', function() {
271		clearTimeout(timer);
272		timer = setTimeout(resizeDone, delta);
273	});
274}
275
276function resizeDone() {
277	gnb();
278}
279
280function header_family_open(){
281	$('body').addClass('no_scroll');
282	$('.header .familysite_box').show();
283}
284
285function header_family_close(){
286	$('body').removeClass('no_scroll');
287	$('.header .familysite_box').hide();
288}
289
290function header_search_open(){
291	$('body').addClass('no_scroll');
292	$('.utill_search_content').show();
293}
294
295function header_search_close(){
296	$('body').removeClass('no_scroll');
297	$('.utill_search_content').hide();
298}
299
300function header_sitemap_open(btn){
301	$('body').toggleClass('no_scroll');
302	$(btn).toggleClass('active');
303	$('.utill_sitemap_content').toggle();
304}
305
306function header_lang(){
307	$('.utill_lang .lang_box').toggle();
308}
309
310// tab
311function tabFunc() {
312	$('.tab_script .btn_tab').click(function(){
313		var dataTab = $(this).data('tab');
314		var dataTabCont = $(this).data('cont');
315
316		$(this).siblings().removeClass('active');
317		$(this).addClass('active');
318
319		$(dataTabCont).find('.cm_tab_cont').removeClass('active').hide();
320		$(dataTabCont).find(dataTab).addClass('active').show();
321	});
322}
323
324function dropDownMenu(el){
325	var btn = $(el);
326	var lst = btn.next();
327	openDropDown(btn,lst);
328}
329
330function openDropDown(btn,lst){
331	btn.attr('title', '열기');
332
333	if(!lst.is(':animated')) {
334		btn.attr('title', (lst.parent().hasClass('active')) ? '열기' : '닫기');
335		lst.slideToggle(250, 'easeInOutExpo').parent('li').toggleClass('active').siblings().removeClass('active').children('div').slideUp(250, 'easeInOutExpo').prev(btn).attr('title', '열기');
336	}
337}
338
339function closeDropDown(btn,lst,open_btn){
340	if(!lst.is(':animated')) {
341		lst.slideUp(250, 'easeInOutExpo').parent('li').removeClass('active');
342		lst.siblings(open_btn).attr('title', '열기');
343	}
344}
345
346function anchor_move(el){
347	var headerHeight = $(".header").outerHeight();
348	var href = $(el).attr("href");
349	var target = $(href == "#" || href == "" ? "body" : href);
350	var position = target.offset().top - headerHeight;
351	$("html, body").animate({ scrollTop: position }, 500);
352}
353
354// AOS
355function runAOS() {
356		AOS.init({
357			duration: 1000,
358			once: true,
359		});
360}
361
362function ct_content(btn, el){
363	var ct_items = $('.ct_content_item');
364	$(btn).parent().siblings().removeClass('active');
365	$(btn).parent().addClass('active');
366	ct_items.hide();
367	$('#' + el).show();
368}
369
370function ct_content2(btn, el){
371	var ct_items = $('.board_contents_item');
372	$(btn).parent().siblings().removeClass('active');
373	$(btn).parent().addClass('active');
374	ct_items.hide();
375	$('#' + el).show();
376}
377
378function main_tab_content(btn, el){
379	var items = $('.main_content .board_area .board_content');
380	$(btn).parent().siblings().removeClass('active');
381	$(btn).parent().addClass('active');
382
383	if($(btn).parent().addClass('active')){
384		$('.main_content .board_area .board_menu').attr('title', '비활성 탭메뉴');
385		$(btn).attr('title', '선택된 탭메뉴');
386	} else {
387		$('.main_content .board_area .board_menu').attr('title', '비활성 탭메뉴');
388	}
389
390	items.hide();
391	$('#' + el).show();
392}
393
394function accordion(){
395	$(".accordion_title_wrap").on("click", function() {
396		var $this = $(this);
397		var headerHeight = $("header").outerHeight();
398		$this.parent().parent('.accordion_list').children('li').removeClass("active");
399		$this.parent().siblings().find(".accordion_content").slideUp(200, function() {
400			
401		});
402		$this.parent().addClass("active");
403		$this.next(".accordion_content").slideDown(200, function() {
404			var contentTop = $this.offset().top - headerHeight;
405			$('html, body').animate({
406				scrollTop: contentTop
407			}, 200);
408		});
409	});
410}
411
412function side_nav(){
413	var sidegnbUI = {
414		click: function(target, speed) {
415			var _self = this,
416				$target = $(target);
417			_self.speed = speed || 300;
418			$target.each(function() {
419				$(this).children('.side_nav_depth').css('display', 'none');
420				if($(this).hasClass('active')){
421					if($(this).children('.side_nav_depth').css('display') == 'none'){
422						$(this).children('.side_nav_depth').css('display', 'block');
423					}
424				}
425				if (findChildren($(this))) {
426					return $(this).addClass('has_depth');
427				}
428			});
429
430			function findChildren(obj) {
431				return obj.find('> .side_nav_depth').length > 0;
432			}
433			$target.on('click', 'a', function(e) {
434				e.stopPropagation();
435				var $this = $(this),
436					$depthTarget = $this.next(),
437					$siblings = $this.parent().siblings();
438				$siblings.find('> .side_nav_depth').slideUp(250);
439				if ($depthTarget.css('display') == 'none') {
440					_self.activeOn($this);
441					$depthTarget.slideDown(_self.speed);
442				} else {
443					$depthTarget.slideUp(_self.speed);
444					_self.activeOff($this);
445				}
446
447				if($depthTarget.length > 0){
448					e.preventDefault();
449				}
450			});
451		},
452		activeOff: function($target) {
453			$target.parent().removeClass('active');
454		},
455		activeOn: function($target) {
456			$target.parent().siblings().removeClass('active');
457			$target.parent().addClass('active');
458		}
459	};
460
461	sidegnbUI.click('.side_nav_depth_item', 300);
462}
463
464// uiDatepicker
465function uiDatepicker() {
466	if($('.form_control.date').length >= 1){
467		$('.form_control.date').datepicker({
468			changeMonth: true,
469			changeYear: true,
470			defaultDate: +7,
471			dateFormat: 'yy-mm-dd',
472			prevText: '이전 달',
473			nextText: '다음 달',
474			monthNames: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
475			monthNamesShort: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
476			dayNames: ['일', '월', '화', '수', '목', '금', '토'],
477			dayNamesShort: ['일', '월', '화', '수', '목', '금', '토'],
478			dayNamesMin: ['일', '월', '화', '수', '목', '금', '토'],
479			showMonthAfterYear: true,
480			yearSuffix: '년'
481		});
482		//$('.form_control.date').datepicker('setDate', new Date());
483	}
484}
485
486//메인 투자, 패밀리사이트 전환 슬라이드
487function main_screen_slide(){
488	var main_screen = new Swiper(".main_screen_slide", {
489		slidesPerView: 'auto',
490		spaceBetween: 0,
491		navigation: {
492			nextEl: '.main_screen_slide_wrap .control_btn2.next',
493			prevEl: '.main_screen_slide_wrap .control_btn2.prev',
494		},
495		observer: true,
496		observeSlideChildren: true,
497		observeParents: true,
498		allowTouchMove: false,
499		on: {
500			slideChange: function () {
501				const button_list = $('.main_search_area .change_btn_list li');
502				const idx = main_screen.activeIndex;
503				const change_button = $('.change_btns .toggle-switch');
504				button_list.removeClass('active');
505				change_button.removeClass('active');
506				if(idx == 0){
507					//투자
508					change_button.addClass('active');
509					$('#toggle_text_id').text('투자/소통으로 화면으로 전환 (현재 화면 : 주요누리집)');
510					
511				} else if(idx == 1){
512					//주요누리집
513					change_button.removeClass('active');
514					$('#toggle_text_id').text('주요누리집으로 화면으로 전환 (현재 화면 : 투자/소통)');
515				}
516				button_list.eq(idx).addClass('active');
517				//swiper.slideTo(index, speed, runCallbacks)
518
519				$(".main_banner2 > .swiper-wrapper > .swiper-slide-active a:first-child").focus();
520			},
521		},
522		autoHeight:true
523	});
524
525	const change_button = $('.change_btns .toggle-switch');
526	change_button.on('click', function(){
527		$('html').stop().animate({scrollTop: 0});
528		main_screen.$wrapperEl.css('height', '');
529		main_screen.update();
530		$(this).toggleClass('active');
531		if(change_button.hasClass('active')){
532			main_screen.slideTo(0);
533		} else {
534			main_screen.slideTo(1);
535		}
536	});
537
538	function initSwiper() {
539		if($('.main_screen_slide').length > 0){
540			main_screen.$wrapperEl.css('height', '');
541			main_screen.update();
542		}
543	}
544
545	initSwiper();
546	
547	$(window).on('resize', function () {
548		initSwiper();
549	});
550}
551
552//메인 SNS 슬라이드
553function main_sns_slide(){
554	const sns_news = new Swiper(".sns_news_slide", {
555		slidesPerView: '3',
556		spaceBetween: 10,
557		pagination: {
558			el: ".swiper-pagination",
559			clickable: true,
560		},
561		observer: true,
562		observeSlideChildren: true,
563		observeParents: true,
564		breakpoints: {
565			0: {
566				slidesPerView: '2',
567				spaceBetween: 10
568			},
569			1024: {
570				slidesPerView: '3',
571				spaceBetween: 10
572			}
573		}
574	});
575}
576
577//메인 배너1
578function main_banner1(){
579	var main_banner = new Swiper(".main_banner", {
580		slidesPerView: '1',
581		spaceBetween: 0,
582		navigation: {
583			nextEl: '.main_banner .control_btn.next',
584			prevEl: '.main_banner .control_btn.prev',
585		},
586		pagination: {
587			el: '.main_banner .swiper-pagination',
588			type: 'fraction',
589		},
590		loop: true,
591		cssMode: true,
592		observer: true,
593		observeSlideChildren: true,
594		observeParents: true,
595	});
596}
597
598//메인 배너1
599function main_banner2(){
600	var slideSetting1 = {
601		slidesPerView: '1',
602		spaceBetween: 0,
603		navigation: {
604			nextEl: '.main_banner2 + .slide_control .control_btn.next',
605			prevEl: '.main_banner2 + .slide_control .control_btn.prev',
606		},
607		pagination: {
608			el: '.main_banner2 + .slide_control .swiper-pagination',
609			type: 'fraction',
610		},
611		loop: false,
612		observer: true,
613		observeSlideChildren: true,
614		observeParents: true,
615		autoplay: {
616			delay: 4000,
617		},
618		cssMode: true,
619	}
620
621	const main_banner2 = new Swiper(".main_banner2", slideSetting1);
622
623	setupSwiperAutoplay('.main_banner2', '.main_content .main_screen1 .screen_item.item2 .control_btn.pause, .main_content .main_screen1 .screen_item.item2 .control_btn.play');
624}
625
626//온라인 통합예약 슬라이드
627function online_reservation_slide(){
628	const or_slide1 = new Swiper('.or_slide1 .swiper', {
629		slidesPerView: 1,
630		loop: false,
631		spaceBetween: 0,
632		navigation: {
633			nextEl: ".or_slide1 .control_btn.next",
634			prevEl: ".or_slide1 .control_btn.prev",
635		},
636		pagination: {
637			el: '.or_slide1 .swiper-pagination',
638			type: 'fraction',
639		},
640		autoplay: false,
641		observer: true,
642		observeSlideChildren: true,
643		observeParents: true,
644		allowTouchMove : false
645	});
646}
647
648function logo_banner_slide(){
649	var slideSetting1 = {
650		slidesPerView: 5,
651		loop: false,
652		spaceBetween: 20,
653		navigation: {
654			nextEl: ".footer_logo_banner .control_btn.next",
655			prevEl: ".footer_logo_banner .control_btn.prev",
656		},
657		autoplay: {
658			delay: 3000,
659		},
660		breakpoints: {
661			0: {
662				slidesPerView: 2,
663				spaceBetween: 10
664			},
665			769: {
666				slidesPerView: 3,
667				spaceBetween: 15
668			},
669			1281: {
670				slidesPerView: 5,
671				spaceBetween: 20
672			}
673		},
674		observer: true,
675		observeSlideChildren: true,
676		observeParents: true,
677	}
678	
679	const logo_banner_slide = new Swiper(".logo_banner_slide .swiper-container", slideSetting1);
680
681	setupSwiperAutoplay('.logo_banner_slide .swiper-container', '.logo_banner_info .control_btn.pause, .logo_banner_info .control_btn.play');
682}
683
684function history(){
685	Stickyfill.forceSticky()
686	Stickyfill.add(document.querySelectorAll('[data-sticky]'));
687
688	var sections = $(".history_item"),
689		nav = $(".history_nav"),
690		header_height = $('.header').outerHeight();
691	
692	function history_cont(){
693		var cur_pos = $(this).scrollTop();
694		var cur_posToFixed = cur_pos.toFixed(0);
695		var cur_posToFixed = Number(cur_posToFixed);
696
697		sections.each(function () {
698			var top = $(this).offset().top - header_height - 10;
699			var topToFixed = top.toFixed(0);
700			var topToFixed = Number(top);
701			var bottom = top + $(this).outerHeight();
702			var bottomToFixed = bottom.toFixed(0);
703			var bottomToFixed = Number(bottom);
704
705			if (cur_posToFixed >= topToFixed && cur_posToFixed <= bottomToFixed) {
706				nav.find("li").removeClass("active");
707				sections.removeClass("active");
708				$(this).addClass("active");
709				nav.find('a[href="#' + $(this).attr("id") + '"]').parent('li').addClass("active");
710			}
711		});
712	}
713
714	history_cont();
715
716	$(window).on("scroll", function () {
717		history_cont();
718	});
719}
720
721function office_guide(){
722	var btn = $('.office_guide_title_wrap');
723	var list = $('.office_guide_list');
724	var content = $('.office_guide_content');
725	btn.on('click', function(){
726		var this_list = $(this).parent('.office_guide_list');
727		this_list.toggleClass('active');
728		this_list.siblings().removeClass('active');
729		this_list.siblings().find(content).stop().slideUp();
730		this_list.find(content).stop().slideToggle();
731	});
732}
733
734// 회의실예약 상세 슬라이드
735function reservation_slide(){
736	var galleryThumbs = new Swiper('.ifez_reservation .ri_slide', {
737		spaceBetween: 20,
738		slidesPerView: 4,
739		freeMode: true,
740		watchSlidesProgress: true,
741		breakpoints: {
742			0: {
743				slidesPerView: 2,
744				spaceBetween: 10
745			},
746			769: {
747				slidesPerView: 3,
748				spaceBetween: 15
749			},
750			1281: {
751				slidesPerView: 4,
752				spaceBetween: 20
753			}
754		},
755	});
756	var galleryTop = new Swiper('.ifez_reservation .ri_img', {
757		spaceBetween: 0,
758		slidesPerView: 1,
759		thumbs: {
760			swiper: galleryThumbs
761		},
762		navigation: {
763			nextEl: ".ri_slide_wrap .control_btn.next",
764			prevEl: ".ri_slide_wrap .control_btn.prev",
765		},
766		pagination: {
767			el: '.ri_slide_wrap .swiper-pagination',
768			type: 'fraction',
769		},
770	});
771}
772
773/* IFEZ 스마트시티 국제심포지엄 파트너 배너 */
774function partner_banner(){
775	var swiper = new Swiper('.partner_banner .swiper-container', {
776		spaceBetween: 30,
777		slidesPerView: 4,
778		// loop: true,
779		navigation: {
780			nextEl: ".partner_banner .control_btn.next",
781			prevEl: ".partner_banner .control_btn.prev",
782		},
783		/*autoplay: {
784			delay: 2500,
785			disableOnInteraction: false,
786		},*/
787		breakpoints: {
788			0: {
789				slidesPerView: '2',
790				spaceBetween: 10
791			},
792			1024: {
793				slidesPerView: '4',
794				spaceBetween: 30
795			}
796		},
797		observer: true,
798		observeSlideChildren: true,
799		observeParents: true,
800	});
801}
802
803/* IFEZ 스마트시티 국제심포지엄 셀렉트 박스 이벤트 */
804function symposium_event_select(){
805	var event_select = $('#event_select');
806
807	event_select.on('change', function() {
808		var value = '#item_' + $(this).val();
809		$('.event_item').removeClass('active');
810		$(value).addClass('active');
811	});
812}
813
814//프린트
815function fnPrint() {
816	/*
817	var initBody = document.body.innerHTML;
818	window.onbeforeprint = function () {
819		document.body.innerHTML = document.getElementsByClassName("sub_page")[0].innerHTML;
820	}
821	window.onafterprint = function () {
822		document.body.innerHTML = initBody;
823	}
824	*/
825	window.print();
826}
827
828// 반응형 스크롤 가이드
829function responsive_table_scroll_guide(){
830	$(".cm_table1 table").each(function(){
831		var table_width = $(this).outerWidth();
832		var table_wrap_width = $(this).parent('.cm_table1').outerWidth();
833		if(table_wrap_width < table_width){
834			$(this).parent('.cm_table1').append('<div class="scroll_guide"><span>스크롤</span></div>');
835		}
836	});
837	$('.scroll_guide').on('click', function(){
838		$(this).hide();
839	});
840}
841
842function skipNaviHashMove(){
843	$("#skipNavi a[href^='#']").on('click', function(e) {
844		var header_height = $('.header').outerHeight();
845
846		$('html, body').animate({
847			scrollTop: $(this.hash).offset().top - header_height
848		}, 300, function() {
849
850		});
851	});
852}
853
854function adjustScrollForVisibility(element) {
855	var headerHeight = $('.header').outerHeight();
856	var elementTop = element.offset().top;
857	var scrollTop = $(window).scrollTop();
858
859	if (elementTop < (scrollTop + headerHeight)) {
860		$('html, body').animate({
861			scrollTop: elementTop - headerHeight
862		}, 200);
863	}
864}
865
866function accessibility(){
867	var lastA1 = $('.us_keyword_box a:last');
868	if (lastA1.length) {
869		lastA1.on('keydown', function(e) {
870			if (e.key === 'Tab') {
871				e.preventDefault();
872				var closeButton = $('.header .header_bottom .utill_area .utill_search_close_btn');
873				if (closeButton.length) {
874					closeButton.focus();
875				}
876			}
877		});
878	}
879
880	$('.utill_search_close_btn').on('click', function() {
881		var searchButton = $('.header .header_bottom .utill_area .utill_search_btn');
882		if (searchButton.length) {
883			searchButton.focus();
884		}
885	});
886
887	$(document).on('focusin', 'a, button, input, textarea, select, [tabindex]:not
887([tabindex="-1"])', function() {
888		if ($(this).closest('.container').length) {
889			adjustScrollForVisibility($(this));
890		}
891	});
892
893	if (window.location.hash) {
894		var $target = $(window.location.hash);
895		if ($target.length) {
896			adjustScrollForVisibility($target);
897		}
898	}
899}

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.