; $(document).ready(function(){ $('.gnb').mouseover(function(){ $('.navi,.ham').addClass('mouseover') }) $('.gnb').mouseleave(function(){ $('.navi,.ham').removeClass('mouseover') }) $(".right_brand_wrap").click(function() { window.open('https://pentahillswsquare.co.kr/', '_blank'); }); // $('.left_quick').delay(3800).fadeIn(1000) // $('.gnb').mouseover(function(){ // $('.navi,.ham').addClass('over') // }) // $('.gnb').mouseleave(function(){ // $('.navi,.ham').removeClass('over') // }) $('.brand_content>div').mouseover(function(){ var idx = $(this).index(); $(".brand_content>div").removeClass("active"); $(".brand_content>div").eq(idx).addClass("active"); $(".brand_bg").removeClass("active"); $(".brand_bg").eq(idx).addClass("active"); }) $(".premium_over_box>div").mouseover(function() { var idx = $(this).index(); $(".premium_img").removeClass("active"); $(".premium_img").eq(idx).addClass("active"); $(".premium_txt").removeClass("active"); $(".premium_txt").eq(idx).addClass("active"); }); $(".sum_content_box>div").mouseover(function() { var idx = $(this).index(); $(".sum_content_box").addClass("active"); $(".sum_content_box>div").removeClass("active"); $(".sum_content_box>div").eq(idx).addClass("active"); $(".sum_over_box>div").removeClass("active"); $(".sum_over_box>div").eq(idx).addClass("active"); $(".sum_box").addClass("hide"); }); // $('.sum_content_box>div').mouseleave(function(){ // $(".sum_over_box>div").removeClass("active"); // $(".sum_bg2,.sum_img,.sum_txt_box").removeClass("hide"); // }) // $('.call,.tel p').mouseover(function(){ // $('.tel').addClass('active') // }) // $('.call,.tel p').mouseleave(function(){ // $('.tel').removeClass('active') // }) $('body.sub .navi, body.sub .ham').addClass('white') $('body.sub .navi,body.sub .left_quick,body.sub .ham').delay(0).fadeIn(1000); $('.right_scroll span').animate({'opacity':'1'},0,function bb(){ $(this).delay(0).animate({'top':'9rem'},1800,function(){ $(this).css({'top':'0','opacity':'0'}) $(this).animate({'opacity':'1'},700,bb) }) }) // $('.intro_content').mouseover(function(){ // $('#cursor').addClass('drag') // $('.cursor_skip').addClass('drag') // }) // $('.intro_content').mouseleave(function(){ // $('#cursor').removeClass('drag') // $('.cursor_skip').removeClass('drag') // }) $('.slide_drag').mouseover(function(){ $('#cursor').addClass('drag') }) $('.slide_drag').mouseleave(function(){ $('#cursor').removeClass('drag') }) $('.slide_drag2').mouseover(function(){ $('#cursor').addClass('drag2') }) $('.slide_drag2').mouseleave(function(){ $('#cursor').removeClass('drag2') }) $('.cursor_cick').mouseover(function(){ $('#cursor').addClass('click') }) $('.cursor_cick').mouseleave(function(){ $('#cursor').removeClass('click') }) // $('.navi,.ham').addClass('white'); $('body.main .navi,body.main .ham,body.main .left_quick').addClass('white'); $('.footer_bt').click(function(){ alert('준비중입니다') }) /* family = 0 $('.footer_bt').click(function(){ if( family == 0 ){ family = 1; $('.footer_family').addClass('active') $('.footer_bt').addClass('active') } else if ( family == 1 ){ family = 0; $('.footer_family').removeClass('active') $('.footer_bt').removeClass('active') } }) */ $('.top_bt').click(function(){ $('body,html').animate({'scrollTop':'0'},400) }) ham = 0 $('.ham').click(function(){ // alert('준비중입니다') if( ham == 0 ){ ham = 1; $(this).addClass("active"); $('.site_wrap,.site_bg').addClass("active"); $('.navi,.ham').addClass("over"); } else if ( ham == 1 ){ ham = 0; $(this).removeClass("active"); $('.site_wrap,.site_bg').removeClass("active"); $('.navi,.ham').removeClass("over"); } }) const trigger = new ScrollTrigger.default({ trigger: { // once: true, offset: { element: { x: 0, y: 0.05 }, // viewport: { // x: 0, // y: (trigger, frame, direction) => { // return trigger.visible ? 0 : 0.3 // } // } }, toggle:{ class:{ in:'active', out:'inactive' } } } }); trigger.add('[data-active]') // .add('[data-slideInBottom]') // .add('[data-fadeIn]') // .add('[data-slideInBottom]') // 인트로 애니메이션 시작 const TRANSITION = 1500; const wait = (ms) => new Promise(res => setTimeout(res, ms)); let cancelled = false; let finished = false; // PC/모바일 체크 const isPC = () => $(window).width() > 1400; // 스크롤 잠금 function lockScroll() { if (isPC()) { $('body.main').on('scroll touchmove mousewheel', blockScroll); } else { $('body.main').addClass('locked'); } } // 스크롤 해제 function unlockScroll() { if (isPC()) { $('body.main').off('scroll touchmove mousewheel', blockScroll); } else { $('body.main').removeClass('locked'); } } // 이벤트 차단 핸들러 function blockScroll(event) { event.preventDefault(); event.stopPropagation(); return false; } // 처음엔 첫 슬라이드 고정 + 자동재생/터치 막기 // swiper_main.slideToLoop(0, 0, false); // swiper_main.autoplay.stop(); // swiper_main.allowTouchMove = false; // // 인트로 끝났을 때 호출 // function startSwiperAfterIntro() { // setTimeout(() => { // swiper_main.slideNext(); // setTimeout(() => { // swiper_main.autoplay.start(); // swiper_main.allowTouchMove = true; // }, swiper_main.params.speed); // }, 2000); // } // 최종 액션 function finalReveal() { if (finished) return; finished = true; if (isPC()) { // PC (1400 이상) $('body.main .navi, body.main .ham,.left_quick').fadeIn(1000); } else { // 모바일 $('body.main .navi, body.main .ham,.left_quick').fadeIn(1000); } $('.cursor_skip2').removeClass('show'); $('.main_skip_wrap').fadeOut(0); $('.intro_wrap').fadeOut(1000); $('.main_guest').addClass('show'); $('.main_wrap').addClass('on'); $('.right_brand_wrap').addClass('show'); $('.navi,.ham').addClass('white'); if (getCookie('today_close1') !== 'Y') { $('#k_popup').addClass('show'); } // startSwiperAfterIntro(); setTimeout(() => { $('.main_wrap').addClass('end'); // swiper_main.slideTo(2); // 인트로 끝 → 스크롤 해제 unlockScroll(); }, TRANSITION); } const introTimeline = [ // { delay: 200, add: 'intro' }, // { delay: 1400, add: 'intro2' }, // { delay: 1200, add: 'intro2b' }, // { delay: 1400, add: 'intro3' }, // { delay: 1200, add: 'intro3b' }, { delay: 200, add: 'intro3' }, { delay: 800, add: 'intro4' }, { delay: 1200, add: 'intro5' }, { delay: 2500, add: 'intro6' }, { delay: 1600, add: 'intro7' }, { delay: 2000, add: 'intro8' }, { delay: 1500, add: 'intro9' }, { delay: 800, add: 'intro10' }, { delay: 1400, add: 'intro11' }, { delay: 2400, add: 'intro12' }, ]; async function runIntroSequence() { const $intro = $('.main_wrap'); // 인트로 시작 전 대기시간 await wait(0); // 인트로 시작 시 스크롤 잠금 lockScroll(); for (const step of introTimeline) { await wait(step.delay); if (cancelled) return; if (step.add) $intro.addClass(step.add); } // 마지막 애니메이션 후 딜레이 5초 뒤 skip 추가 await wait(1000); if (cancelled) return; $intro.addClass('skip'); finalReveal(); } function scheduleSkipUI() { setTimeout(() => { $('.main_skip_wrap').fadeIn(1000); $('.cursor_skip2').addClass('show'); }, 1500); } function bindSkipButton() { $('.main_skip_bt').on('click', function () { if (finished) return; cancelled = true; $('.main_wrap').stop(true, true).addClass('skip'); $('.cursor_skip2').removeClass('show'); $('.main_skip_wrap').fadeOut(0); // bgm재생 startAudio(); // 스킵 → 스크롤 해제 unlockScroll(); finalReveal(); }); } // --- 개발용 스킵 토글 --- // 1) URL에 ?devskip=1 붙이면 켜짐 // 2) 또는 localStorage.setItem('introDevSkip','1') 로 켜기 / removeItem 으로 끄기 function isDevSkip() { const q = new URLSearchParams(location.search); return q.get('devskip') === '1' || localStorage.getItem('introDevSkip') === '1'; } // 개발용 즉시 스킵 실행 (인트로 전부 생략) function fastSkip() { // 진행 중단 cancelled = true; // 인트로 UI/상태 정리 $('.main_wrap').stop(true, true).addClass('skip'); $('.cursor_skip2').removeClass('show'); $('.main_skip_wrap').hide(); // 바로 최종 단계로 (finalReveal 내부에서 1.6초 후 end/popup/스크롤해제 실행됨) finalReveal(); } // 초기화 $(function () { if (isDevSkip()) { // 개발모드: 인트로 생략 fastSkip(); } else { // 평소대로 인트로 진행 scheduleSkipUI(); bindSkipButton(); runIntroSequence(); } }); // 인트로 애니메이션 끝 win_w = $(window).width(); if ( win_w > 1400 ){ // // $(".location_txt").mouseover(function() { // var idx = $(this).index(); // $(".location_img").removeClass("active"); // $(".location_img").eq(idx).addClass("active"); // $(".location_txt").removeClass("active"); // $(".location_txt").eq(idx).addClass("active"); // $(".location_bg").addClass("hide"); // }); // $('.location_txt').mouseleave(function(){ // $('.location_img').removeClass('active') // $('.location_txt').removeClass('active') // $(".location_bg").removeClass("hide"); // }) const cursor = document.querySelector('#cursor'); const cursorCircle = cursor.querySelector('.cursor__circle'); const mouse = { x: -100, y: -100 }; // mouse pointer's coordinates const pos = { x: 0, y: 0 }; // cursor's coordinates const speed = 0.2; // between 0 and 1 const updateCoordinates = e => { mouse.x = e.clientX; mouse.y = e.clientY; } window.addEventListener('mousemove', updateCoordinates); function getAngle(diffX, diffY) { return Math.atan2(diffY, diffX) * 180 / Math.PI; } function getSqueeze(diffX, diffY) { const distance = Math.sqrt( Math.pow(diffX, 2) + Math.pow(diffY, 2) ); const maxSqueeze = 0.15; const accelerator = 1500; return Math.min(distance / accelerator, maxSqueeze); } const updateCursor = () => { const diffX = Math.round(mouse.x - pos.x); const diffY = Math.round(mouse.y - pos.y); pos.x += diffX * speed; pos.y += diffY * speed; const angle = getAngle(diffX, diffY); const squeeze = getSqueeze(diffX, diffY); const scale = 'scale(' + (1 + squeeze) + ', ' + (1 - squeeze) +')'; const rotate = 'rotate(' + angle +'deg)'; const translate = 'translate3d(' + pos.x + 'px ,' + pos.y + 'px, 0)'; cursor.style.transform = translate; cursorCircle.style.transform = rotate + scale; }; function loop() { updateCursor(); requestAnimationFrame(loop); } requestAnimationFrame(loop); const cursorModifiers = document.querySelectorAll('[cursor-class]'); cursorModifiers.forEach(curosrModifier => { curosrModifier.addEventListener('mouseenter', function() { const className = this.getAttribute('cursor-class'); cursor.classList.add(className); }); curosrModifier.addEventListener('mouseleave', function() { const className = this.getAttribute('cursor-class'); cursor.classList.remove(className); }); }); // var full_move = true; $("#section1").on("DOMMouseScroll mousewheel wheel", function(event,delta){ $.fn.fullpage.setAllowScrolling(false); $.fn.fullpage.setKeyboardScrolling(false); if (delta > 0) { if($('.main_wrap').hasClass('end') == true){ $('.main_wrap').removeClass('on2 end2').addClass('on end'); } else if($('.main_wrap').hasClass('end2') == true){ $('.main_wrap').removeClass('end2 on2').addClass('on'); setTimeout(function() { $('.main_wrap').addClass('end'); }, TRANSITION); } } else if (delta < 0) { if($('.main_wrap').hasClass('on') == true){ $('.main_wrap').removeClass('on end on2 end2').addClass('on2'); setTimeout(function() { $('.main_wrap').addClass('end2'); }, TRANSITION); } else if ($('.main_wrap').hasClass('end2') == true){ $.fn.fullpage.moveTo(2); } } }); var full_move = true; $("#section2").on("DOMMouseScroll mousewheel wheel", function(event,delta){ $.fn.fullpage.setAllowScrolling(false); $.fn.fullpage.setKeyboardScrolling(false); if (delta > 0) { if($('.sum_wrap').hasClass('end') == true){ $.fn.fullpage.moveTo(1); } else if($('.sum_wrap').hasClass('end2') == true){ // $('.navi,.ham').removeClass('white'); $('.sum_wrap').removeClass('end2 on2').addClass('on'); setTimeout(function() { $('.sum_wrap').addClass('end'); }, TRANSITION); } } else if (delta < 0) { if($('.sum_wrap').hasClass('end') == true){ // $('.navi,.ham').addClass('white'); $('.sum_wrap').removeClass('on end on2 end2').addClass('on2'); setTimeout(function() { $('.sum_wrap').addClass('end2'); }, TRANSITION); } else if ($('.sum_wrap').hasClass('end2') == true){ $.fn.fullpage.moveTo(3); } } }); var full_move = true; $("#section4").on("DOMMouseScroll mousewheel wheel", function(event,delta){ $.fn.fullpage.setAllowScrolling(false); $.fn.fullpage.setKeyboardScrolling(false); if (delta > 0) { if($('.location_wrap').hasClass('end') == true){ $.fn.fullpage.moveTo(3); } else if($('.location_wrap').hasClass('end2') == true){ // $('.navi,.ham').removeClass('white'); $('.location_wrap').removeClass('end2 on2').addClass('on'); setTimeout(function() { $('.location_wrap').addClass('end'); }, TRANSITION); } } else if (delta < 0) { if($('.location_wrap').hasClass('end') == true){ // $('.navi,.ham').addClass('white'); $('.location_wrap').removeClass('on end on2 end2').addClass('on2'); setTimeout(function() { $('.location_wrap').addClass('end2'); }, TRANSITION); } else if ($('.location_wrap').hasClass('end2') == true){ $.fn.fullpage.moveTo(5); } } }); var full_move = true; $("#section5").on("DOMMouseScroll mousewheel wheel", function(event,delta){ $.fn.fullpage.setAllowScrolling(false); $.fn.fullpage.setKeyboardScrolling(false); if (delta > 0) { if($('.land_wrap').hasClass('end') == true){ $.fn.fullpage.moveTo(4); } else if($('.land_wrap').hasClass('end2') == true){ $('.navi,.ham').addClass('white'); $('.land_wrap').removeClass('end2 on2').addClass('on'); setTimeout(function() { $('.land_wrap').addClass('end'); }, TRANSITION); } else if($('.land_wrap').hasClass('end3') == true){ // $('.navi,.ham').removeClass('white'); $('.land_wrap').removeClass('end3 on3').addClass('on2'); setTimeout(function() { $('.land_wrap').addClass('end2'); }, TRANSITION); } } else if (delta < 0) { if($('.land_wrap').hasClass('end3') == true){ $.fn.fullpage.moveTo(6); } else if($('.land_wrap').hasClass('end') == true){ $('.navi,.ham').removeClass('white'); $('.land_wrap').removeClass('on end').addClass('on2'); setTimeout(function() { $('.land_wrap').addClass('end2'); }, TRANSITION); } else if($('.land_wrap').hasClass('end2') == true){ $('.land_wrap').removeClass('on2 end2').addClass('on3'); setTimeout(function() { $('.land_wrap').addClass('end3'); }, TRANSITION); } } }); var full_move = true; $("#section8").on("DOMMouseScroll mousewheel wheel", function(event,delta){ $.fn.fullpage.setAllowScrolling(false); $.fn.fullpage.setKeyboardScrolling(false); if (delta > 0) { if($('.unit_wrap').hasClass('end') == true){ $.fn.fullpage.moveTo(7); } else if($('.unit_wrap').hasClass('end2') == true){ $('.unit_wrap').removeClass('on2 end2').addClass('on'); setTimeout(function() { $('.unit_wrap').addClass('end'); }, TRANSITION); } } else if (delta < 0) { if($('.unit_wrap').hasClass('end2') == true){ $.fn.fullpage.moveTo(9); } else if($('.unit_wrap').hasClass('end') == true){ $('.unit_wrap').removeClass('on end').addClass('on2'); setTimeout(function() { $('.unit_wrap').addClass('end2'); }, TRANSITION); } } }); // 어떤 섹션에서 white를 사용할지 정의 function isWhiteSection(idx){ // 예시: 3번 섹션만 흰색 네비 return [1, 5, 6, 7, 8, 9, 10].includes(idx); } $('#fullpage').fullpage({ navigation: false, css3: true, verticalCentered: true, scrollingSpeed: TRANSITION, keyboardScrolling: false, // 초기 렌더 완료 시: 시작 섹션 기준으로 1회만 세팅 afterRender: function(){ // fullPage는 첫 섹션이 1부터 시작 const startIndex = 1; $('.navi,.ham,.left_quick').toggleClass('white', isWhiteSection(startIndex)); }, // 여기서만 white를 관리한다! onLeave: function(index, nextIndex, direction){ // 1) 이동 시작 시점에 "다음 섹션" 기준으로 테마 결정 $('.navi,.ham,.left_quick').toggleClass('white', isWhiteSection(nextIndex)); // 2) 섹션 전환 애니메이션 (기존 로직 유지) if (index === 1 && direction === 'down'){ $('.main_wrap').removeClass('end'); setTimeout(() => { $('.main_wrap').removeClass('on'); }, TRANSITION); $('.sum_wrap').addClass('on'); setTimeout(() => { $('.sum_wrap').addClass('end'); }, TRANSITION); } if (index === 2 && direction === 'up'){ $('.main_wrap').removeClass('on end'); $('.sum_wrap').removeClass('end'); setTimeout(() => { $('.sum_wrap').removeClass('on'); }, TRANSITION); $('.main_wrap').addClass('on2'); setTimeout(() => { $('.main_wrap').addClass('end2'); }, TRANSITION); } else if (index === 2 && direction === 'down'){ $('.sum_wrap').removeClass('end'); setTimeout(() => { $('.sum_wrap').removeClass('on'); }, TRANSITION); $('.overview_wrap').addClass('on'); setTimeout(() => { $('.overview_wrap').addClass('end'); }, TRANSITION); } if (index === 3 && direction === 'up'){ // $('.navi,.ham,.left_quick').removeClass('white'); $('.overview_wrap').removeClass('end'); setTimeout(() => { $('.overview_wrap').removeClass('on'); }, TRANSITION); $('.sum_wrap').addClass('on2'); setTimeout(() => { $('.sum_wrap').addClass('end2'); }, TRANSITION); } else if (index === 3 && direction === 'down'){ $('.overview_wrap').removeClass('end'); setTimeout(() => { $('.overview_wrap').removeClass('on'); }, TRANSITION); $('.location_wrap').addClass('on'); setTimeout(() => { $('.location_wrap').addClass('end'); }, TRANSITION); } if (index === 4 && direction === 'up'){ $('.location_wrap').removeClass('end'); setTimeout(() => { $('.location_wrap').removeClass('on'); }, TRANSITION); $('.overview_wrap').addClass('on'); setTimeout(() => { $('.overview_wrap').addClass('end'); }, TRANSITION); } else if (index === 4 && direction === 'down'){ $('.location_wrap').removeClass('end'); setTimeout(() => { $('.location_wrap').removeClass('on'); }, TRANSITION); $('.land_wrap').addClass('on'); setTimeout(() => { $('.land_wrap').addClass('end'); }, TRANSITION); } if (index === 5 && direction === 'up'){ $('.navi,.ham,.left_quick').removeClass('white'); $('.land_wrap').removeClass('end'); setTimeout(() => { $('.land_wrap').removeClass('on'); }, TRANSITION); $('.location_wrap').addClass('on2'); setTimeout(() => { $('.location_wrap').addClass('end2'); }, TRANSITION); } else if (index === 5 && direction === 'down'){ $('.land_wrap').removeClass('end'); setTimeout(() => { $('.land_wrap').removeClass('on'); }, TRANSITION); $('.community_wrap').addClass('on'); setTimeout(() => { $('.community_wrap').addClass('end'); }, TRANSITION); } if (index === 6 && direction === 'up'){ $('.navi,.ham,.left_quick').removeClass('white'); $('.community_wrap').removeClass('end'); setTimeout(() => { $('.community_wrap').removeClass('on'); }, TRANSITION); $('.land_wrap').addClass('on'); setTimeout(() => { $('.location_wrap').addClass('end'); }, TRANSITION); } else if (index === 6 && direction === 'down'){ $('.community_wrap').removeClass('end'); setTimeout(() => { $('.community_wrap').removeClass('on'); }, TRANSITION); $('.system_wrap').addClass('on'); setTimeout(() => { $('.system_wrap').addClass('end'); }, TRANSITION); } if (index === 7 && direction === 'up'){ $('.system_wrap').removeClass('end'); setTimeout(() => { $('.system_wrap').removeClass('on'); }, TRANSITION); $('.community_wrap').addClass('on'); setTimeout(() => { $('.community_wrap').addClass('end'); }, TRANSITION); } else if (index === 7 && direction === 'down'){ $('.system_wrap').removeClass('end'); setTimeout(() => { $('.system_wrap').removeClass('on'); }, TRANSITION); $('.unit_wrap').addClass('on'); setTimeout(() => { $('.unit_wrap').addClass('end'); }, TRANSITION); } if (index === 8 && direction === 'up'){ $('.unit_wrap').removeClass('end'); setTimeout(() => { $('.unit_wrap').removeClass('on'); }, TRANSITION); $('.system_wrap').addClass('on'); setTimeout(() => { $('.system_wrap').addClass('end'); }, TRANSITION); } else if (index === 8 && direction === 'down'){ $('.unit_wrap').removeClass('end'); setTimeout(() => { $('.unit_wrap').removeClass('on'); }, TRANSITION); $('.brand_wrap').addClass('on'); setTimeout(() => { $('.brand_wrap').addClass('end'); }, TRANSITION); } if (index === 9 && direction === 'up'){ $('.brand_wrap').removeClass('end'); setTimeout(() => { $('.brand_wrap').removeClass('on'); }, TRANSITION); $('.unit_wrap').addClass('on2'); setTimeout(() => { $('.unit_wrap').addClass('end2'); }, TRANSITION); } else if (index === 9 && direction === 'down'){ $('.brand_wrap').removeClass('end'); setTimeout(() => { $('.brand_wrap').removeClass('on'); }, TRANSITION); $('.out_wrap').addClass('on'); setTimeout(() => { $('.out_wrap').addClass('end'); }, TRANSITION); } if (index === 10 && direction === 'up'){ $('.out_wrap').removeClass('end'); setTimeout(() => { $('.out_wrap').removeClass('on'); }, TRANSITION); $('.brand_wrap').addClass('on'); setTimeout(() => { $('.brand_wrap').addClass('end'); }, TRANSITION); } else if (index === 10 && direction === 'down'){ $('.footer').addClass('on'); setTimeout(() => { $('.footer').addClass('end'); }, TRANSITION); $('header,.navi,.ham,.left_quick,.right_brand_wrap').fadeOut(); } if (index === 11 && direction === 'up'){ $('.footer').removeClass('on'); setTimeout(() => { $('.footer').removeClass('end'); }, TRANSITION); $('header,.navi,.ham,.left_quick,.right_brand_wrap').fadeIn(); } }, // afterLoad에서는 white를 만지지 않는다 (충돌 방지) afterLoad: function(anchorLink, index){ // 스크롤 허용 관련만 유지 (필요 시) $.fn.fullpage.setAllowScrolling(true); $.fn.fullpage.setKeyboardScrolling(false); } }); /* ----------------------------- 유틸 & 클릭 핸들러(white 미터치) ------------------------------*/ function closeSiteMenus(){ ham = 0; $('.ham').removeClass("active"); $('.ham p b').html('menu') $('.gnb>ul').stop().fadeIn(1000) $('.site_wrap,.site_bg').removeClass("active"); $('.navi,.ham').removeClass("over"); $('.navi').css({'display':'block'}) $('body').off('scroll touchmove mousewheel'); } function resetWrapClasses() { // $('.section > div').each(function () { // $(this).find('div').addBack().each(function () { // const m = this.className && this.className.match(/\b[A-Za-z0-9_-]*_wrap\b/); // if (m) { // this.className = m[0]; // } // }); // }); } $(document).on('click', '.top_bt', function(){ $.fn.fullpage.moveTo(1); resetWrapClasses(); $('.main_wrap').removeClass('on2 on3 on4 end2 end3 end4').addClass('on'); setTimeout(() => { $('.main_wrap').addClass('end').removeClass('on2 on3 on4 end2 end3 end4'); $('.sum_wrap').removeClass('on2 end2'); }, TRANSITION); }); $(document).on('click', '.menu1', function(){ $.fn.fullpage.moveTo(1); resetWrapClasses(); $('.main_wrap').removeClass('on on2 end end2').addClass('on2'); setTimeout(() => { $('.main_wrap').addClass('end2').removeClass('on end'); $('.location_wrap').removeClass('on2 end2'); }, TRANSITION); closeSiteMenus(); }); $(document).on('click', '.menu2', function(){ $.fn.fullpage.moveTo(2); resetWrapClasses(); $('.location_wrap').addClass('on'); setTimeout(() => { $('.location_wrap').addClass('end'); $('.main_wrap').removeClass('end on').addClass('on2 end2'); }, TRANSITION); closeSiteMenus(); }); $(document).on('click', '.menu3', function(){ $.fn.fullpage.moveTo(3); resetWrapClasses(); $('.premium_wrap').addClass('on'); setTimeout(() => { $('.premium_wrap').addClass('end'); $('.main_wrap').removeClass('end2 on2').addClass('on2 end2'); $('.location_wrap').removeClass('end on').addClass('on2 end2'); }, TRANSITION); closeSiteMenus(); }); $(document).on('click', '.menu4b', function(){ $.fn.fullpage.moveTo(4); resetWrapClasses(); $('.view_wrap').addClass('on'); setTimeout(() => { $('.view_wrap').addClass('end'); $('.main_wrap').removeClass('end2 on2').addClass('on2 end2'); $('.location_wrap').removeClass('end on').addClass('on2 end2'); }, TRANSITION); closeSiteMenus(); }); $(document).on('click', '.menu4c', function(){ $.fn.fullpage.moveTo(5); resetWrapClasses(); $('.news_wrap').addClass('on'); setTimeout(() => { $('.news_wrap').addClass('end'); $('.main_wrap').removeClass('end2 on2').addClass('on2 end2'); $('.location_wrap').removeClass('end on').addClass('on2 end2'); }, TRANSITION); closeSiteMenus(); }); $(document).on('click', '.menu5', function(){ $.fn.fullpage.moveTo(6); resetWrapClasses(); $('.contact_wrap').addClass('on'); setTimeout(() => { $('.contact_wrap').addClass('end'); $('.main_wrap').removeClass('end2 on2').addClass('on2 end2'); $('.location_wrap').removeClass('end on').addClass('on2 end2'); }, TRANSITION); closeSiteMenus(); }); $(window).scroll(function(){ sc = $(window).scrollTop(); subTop = $('.sub_top').height() - 300; if ( sc>subTop ) { $('.navi,.left_quick').addClass('active') $('.ham').addClass('active2') } if ( sc21 ) { $('.navi,.left_quick').addClass('active') $('.ham').addClass('active2') } if ( sc<21 ) { $('.navi,.left_quick').removeClass('active') $('.ham').removeClass('active2') } }); } }); $(window).scroll(function(){ sc = $(window).scrollTop(); footerTop = $('.footer').offset().top - $(window).height() mainH = $('.intro_all_wrap').height() if ( sc>21 ) { $('.navi').addClass('active') $('.ham').addClass('active2') } if ( sc<21 ) { $('.navi').removeClass('active') $('.ham').removeClass('active2') } // if( mainH <= sc ){ // $('.main_wrap').removeClass('on'); // } else { // $('.main_wrap').addClass('on'); // } if( footerTop <= sc ){ $('.footer').addClass('active'); } else { $('.footer').removeClass('active'); } }); document.addEventListener("DOMContentLoaded", function () { // 1. 스크롤 이동 및 메뉴 닫기 통합 const anchors = document.querySelectorAll('.site_list a[data-target]'); anchors.forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); const targetId = this.getAttribute('data-target'); const targetElement = document.getElementById(targetId); if (targetElement) { const yOffset = -40; const y = targetElement.getBoundingClientRect().top + window.pageYOffset + yOffset; window.scrollTo({ top: y, behavior: 'smooth' }); // jQuery 호출 시 에러 방지를 위한 체크 if (window.jQuery) { ham = 0; $('.ham').removeClass("active"); $('.site_list2').removeClass("open"); $('.site_wrap, .site_bg, .world_bg, .world_content').removeClass("active"); $('.navi, .ham').removeClass("over"); } } }); }); // 2. 아코디언 메뉴 로직 개선 const menuItems = document.querySelectorAll(".site_list > li"); menuItems.forEach(li => { li.addEventListener("click", function (e) { const topA = li.querySelector(":scope > a"); const submenu = li.querySelector(":scope > .site_list2"); // 서브메뉴 내부 링크 클릭 시 if (e.target.closest(".site_list2 a")) { // 클릭한 게 실제 이동할 링크라면 캡처링에서 처리되므로 여기선 전파만 차단 e.stopPropagation(); return; } // 상위 메뉴 클릭 시 토글 if (submenu && topA && topA.contains(e.target)) { e.preventDefault(); const isOpen = li.classList.contains("open"); // 초기화 document.querySelectorAll(".site_list2.open, .site_list > li.open").forEach(el => { el.classList.remove("open"); }); if (!isOpen) { submenu.classList.add("open"); li.classList.add("open"); } } }); }); }); // 3. 외부 링크 처리 (캡처링 범위를 좁히는 것이 안전함) document.addEventListener("click", function (e) { const a = e.target.closest(".site_list2 a"); if (!a) return; // 서브메뉴 링크가 아니면 무시 const href = a.getAttribute("href"); if (!href || href.startsWith("javascript") || href.startsWith("#")) return; e.preventDefault(); e.stopPropagation(); if (a.target === "_blank") { window.open(href, "_blank", "noopener"); } else { window.location.href = href; } }, true);