const html = document.querySelector("html"); const header = document.querySelector("header"); let windowWidth = window.innerWidth; let windowHeight = window.innerHeight; let mobileWidth = 1200; let scrollPos = 0; let stickyPos = 0; let ticking = false; let timeout; let burgerMenu = document.querySelector(".h-mobile-btn"); let linkToggle; let subLinkToggle; let delay = 300; let timer; // Header Event function headerEvent() { window.addEventListener('scroll', scroll, false); window.addEventListener("resize", headerResize, false); (headerAnimate = function (call) { windowWidth = window.innerWidth; windowHeight = window.innerHeight; scrollPos = window.scrollY || window.pageYOffset; animated(); if (windowWidth > mobileWidth) { header.setAttribute('data-header-mobile', 'off'); burgerMenu.setAttribute('aria-pressed', 'false'); // burgerMarker(); } if (call === undefined) { // initialized(); } else if (call === 'scroll') { // scrolled(); } else if (call === 'resize') { // resized(); } })(); function animated() { // scrollTop(); sticky(); } function resize() { clearTimeout(timer); timer = setTimeout(function () { timer = null; handle(); }, 66); } function handle() { call = "resize"; headerAnimate(call, windowWidth); } function scroll() { // 조건문 실행 - 초기 변수가 참인지 거짓인지 판단 후 변환 if (!ticking) { window.requestAnimationFrame(() => { call = 'scroll'; headerAnimate(call); ticking = false; }); ticking = true; } } function sticky() { let scrollPos = window.pageYOffset || document.documentElement.scrollTop; if (scrollPos > stickyPos) { header.setAttribute('data-header', 'sticky'); } else { header.removeAttribute('data-header'); } if (scrollPos > 0) { header.classList.add('active'); } else { header.classList.remove('active'); } // 조건문 실행 후 변수 재설정 하여 조건문 재실행 stickyPos = scrollPos <= 0 ? 0 : scrollPos; // AOS Event Scroll AOS.init({ // offset: 300, duration: 600, easing: 'ease', once: true, }); } function hoverAction() { header.addEventListener("mouseenter", function () { header.classList.add("header-active"); }); header.addEventListener("mouseleave", function () { header.classList.remove("header-active"); }); let menuLists = document.querySelectorAll(".h-menu-list"); menuLists.forEach((list) => { let submenu = list.querySelector(".h-submenu"); subLinkToggle = document.querySelectorAll(".h-submenu-toggle"); if (submenu) { list.addEventListener("mouseenter", function () { menuLists.forEach((current) => { current.classList.remove("menu-active"); }); header.classList.add('menu-on'); list.classList.add("menu-active"); }); list.addEventListener("mouseleave", function () { list.classList.remove("menu-active"); header.classList.remove('menu-on'); for (let j = 0; j < subLinkToggle.length; j++) { subLinkToggle[j].setAttribute("data-submenu-link", "false"); } }); } }); } hoverAction(); function headerResize() { clearTimeout(timer); timer = setTimeout(function () { timer = null; handle(); }, 66); } function handle() { call = "resize"; headerAnimate(call, windowWidth); } burgerMenu.addEventListener("click", function () { burgerMaker(this); }); function hideSubMenu() { linkToggle = document.querySelectorAll(".h-menu-toggle"); subLinkToggle = document.querySelectorAll(".h-submenu-toggle"); for (let i = 0; i < linkToggle.length; i++) { linkToggle[i].setAttribute("data-menu-link", "false"); for (let j = 0; j < subLinkToggle.length; j++) { subLinkToggle[j].setAttribute("data-submenu-link", "false"); } } } function clickSubMenu() { hideSubMenu(); for (let i = 0; i < linkToggle.length; i++) { linkToggle[i].addEventListener("click", function () { if (this.getAttribute("data-menu-link") === "true") { hideSubMenu(); } else { hideSubMenu(); this.setAttribute("data-menu-link", "true"); } }); } } clickSubMenu(); function burgerMaker(e) { let body = document.querySelector('body'); if (e === undefined || e.getAttribute("aria-pressed") === "true") { header.setAttribute("data-header-mobile", "off"); burgerMenu.setAttribute("aria-pressed", "false"); body.classList.remove('none-scroll'); hideSubMenu(); } else { e.setAttribute("aria-pressed", "true"); header.setAttribute("data-header-mobile", "on"); body.classList.add('none-scroll'); linkToggle.forEach((link) => { link.addEventListener("click", function (event) { event.preventDefault(); }); }); } } // 퀵 이벤트 //ScrollDown Event 스크롤다운 이벤트 } function privacyModalEvent() { let privacyModalBtn = document.getElementById('privacyModalBtn'); let privacyModal = document.getElementById('privacyModal'); let modalClose = document.querySelector('#privacyModal .close--modal'); let modalClose2 = document.querySelector('#privacyModal .modal-bg'); if (privacyModalBtn) { privacyModalBtn.addEventListener('click', function () { privacyModal.classList.add('open'); }); modalClose.addEventListener('click', function () { privacyModal.classList.remove('open'); }); modalClose2.addEventListener('click', function () { privacyModal.classList.remove('open'); }); } } function termsModalEvent() { let termsModalBtn = document.getElementById('termsModalBtn'); let termsModal = document.getElementById('termsModal'); let modalClose = document.querySelector('#termsModal .close--modal'); let modalClose2 = document.querySelector('#termsModal .modal-bg'); if (termsModalBtn) { termsModalBtn.addEventListener('click', function () { termsModal.classList.add('open'); }); modalClose.addEventListener('click', function () { termsModal.classList.remove('open'); }); modalClose2.addEventListener('click', function () { termsModal.classList.remove('open'); }); } } function scrolled() { let quick = document.getElementById('quick'); if (quick) { window.addEventListener('scroll', function () { // 실시간으로 스크롤 위치를 업데이트 let scrollPos = window.pageYOffset || document.documentElement.scrollTop; // console.log(scrollPos); // 현재 스크롤 위치 확인 if (scrollPos > 250) { quick.classList.add('on'); } if (scrollPos < 250) { quick.classList.remove('on'); } }); $(".link-top").click(function () { var offset = $(".sec01").offset(); $("html, .sec01").animate({ scrollTop: offset.top - 60 }, 300); }); } } function subScrolled() { let quick = document.getElementById('quick'); if (quick) { window.addEventListener('scroll', function () { // 실시간으로 스크롤 위치를 업데이트 let scrollPos = window.pageYOffset || document.documentElement.scrollTop; // console.log(scrollPos); // 현재 스크롤 위치 확인 if (scrollPos > 100) { quick.classList.add('on'); } if (scrollPos < 100) { quick.classList.remove('on'); } }); $(".link-top").click(function () { var offset = $(".sec01").offset(); $("html, .sec01").animate({ scrollTop: offset.top - 60 }, 300); }); } } // Main Visual // 메인 비주얼 function mainVisual() { let options = { effect: "fade", fadeEffect: { crossFade: true, }, speed: 1000, allowTouchMove: true, breakpointsInverse: true, loop: true, autoplay: { delay: 5000, disableOnInteraction: false, }, pagination: { el: ".sec01 .pagination", clickable: true, }, watchSlidesProgress: true, breakpoints: { 1201: { allowTouchMove: false, }, } }; const visualSlider = new Swiper(".sec01 .swiper-container", options); } // 메인 고객사 function mainProduct() { if ($(".partner-swiper .swiper-slide").length <= 3) { options = { slidesPerView: 2, spaceBetween: 6, loop: false, navigation: { nextEl: ".sec04 .partner .next", prevEl: ".sec04 .partner .prev", }, touchRatio: 0, pagination: { el: ".partner-swiper .progressbar", type: "progressbar", }, breakpoints: { 501: { slidesPerView: 2, spaceBetween: 6, }, 631: { slidesPerView: 3, spaceBetween: 8, }, 769: { slidesPerView: 3, spaceBetween: 10, allowTouchMove: true, }, 1025: { slidesPerView: 4, spaceBetween: 15, allowTouchMove: false, }, 1201: { slidesPerView: 4, spaceBetween: 20, allowTouchMove: false, }, } }; } else { options = { slidesPerView: 2, spaceBetween: 6, initialSlide: 0, autoplay: { delay: 1500, disableOnInteraction: false, }, loop: true, loopedSlides: 5, observer: true, observeParents: true, allowTouchMove: true, navigation: { nextEl: ".sec04 .partner .next", prevEl: ".sec04 .partner .prev", }, pagination: { el: ".partner-swiper .progressbar", type: "progressbar", }, breakpoints: { 501: { slidesPerView: 2, spaceBetween: 6, }, 631: { slidesPerView: 3, spaceBetween: 8, }, 769: { slidesPerView: 3, spaceBetween: 10, allowTouchMove: true, }, 1025: { slidesPerView: 4, spaceBetween: 15, allowTouchMove: false, }, 1201: { slidesPerView: 4, spaceBetween: 20, allowTouchMove: false, }, } } } const productSlider = new Swiper('.sec04 .partner-swiper', options); } function voteEvent() { let mainOptions = { effect: 'fade', fadeEffect: { crossFade: true }, speed: 1000, allowTouchMove: true, breakpointsInverse: true, loop: true, loopedSlides: 1, // autoplay: { // delay: 4000, // disableOnInteraction: false, // }, pagination: { el: ".sec01 .vote-pagination",//버튼을 담을 태그 설정 clickable: true, // 버튼 클릭 여부 type: 'bullets', //페이징 타입 설정(종류: bullets, fraction, progress, progressbar) renderBullet: function (index, className) { return '
' + 'STEP' + '' + '0' + (index + 1) + '' + '
' + '' + '
' + '