// 공통 이벤트 function commonEvent(){ 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 headerMenu = document.querySelector('.h_menu'); let burgerMenu = document.querySelector('.h_mobile__btn'); let linkToggle; let timer; if(header){ window.addEventListener('scroll', scroll, false); window.addEventListener("resize", resize, false); (headerAnimate = function(call){ windowWidth = window.innerWidth; windowHeight = window.innerHeight; scrollPos = window.scrollY || window.pageYOffset; animated(); if (windowWidth > mobileWidth) { burgerMaker(); } })(); function animated(){ 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 > 0){ header.classList.add('active'); } else { header.classList.remove('active'); } stickyPos = scrollPos <= 0 ? 0 : scrollPos; } headerMenu.addEventListener('mouseover', isOver); headerMenu.addEventListener('mouseout', isOut); function isOver(){ // html.style.overflow = "hidden"; header.setAttribute('data-hover', 'on'); } function isOut(){ // html.style.overflow = ""; header.removeAttribute('data-hover'); } // Mobile Menu Event burgerMenu.addEventListener("click", function(){ burgerMaker(this); }); function hideSubMenu() { linkToggle = document.querySelectorAll('.h_menu__toggle'); for (let i = 0; i < linkToggle.length; i++) { linkToggle[i].setAttribute('aria-toggle', 'false'); } } function clickSubMenu() { hideSubMenu(); for (let i = 0; i < linkToggle.length; i++) { linkToggle[i].addEventListener('click', function () { if (this.getAttribute('aria-toggle') === 'true') { hideSubMenu(); } else { hideSubMenu(); this.setAttribute('aria-toggle', 'true'); } }); } } clickSubMenu(); function burgerMaker(e) { if (e === undefined || e.getAttribute('aria-pressed') === 'true') { header.setAttribute('data-header-mobile', 'off'); burgerMenu.setAttribute('aria-pressed', 'false'); hideSubMenu(); html.style.overflow = ''; } else { burgerMenu.setAttribute('aria-pressed', 'true'); header.setAttribute('data-header-mobile', 'on'); html.style.overflow = 'hidden'; linkToggle.forEach((link) => { link.addEventListener('click', function (e) { e.preventDefault(); }); }); } } let scrollBtn = document.querySelector('.quick-menu .scroll-top'); scrollBtn.addEventListener('click', function(e){ e.preventDefault(); window.scroll({top: 0, left: 0, behavior: 'smooth'}); }); } AOS.init({ duration: 800, once: true, }); AOS.refresh(); window.addEventListener('scroll', () => { const scrollBottom = window.innerHeight + window.scrollY; const documentHeight = document.body.offsetHeight; if (scrollBottom >= documentHeight - 100) { AOS.refresh(); } }); }