// Mobile Height Event function setScreenSize() { let vh = window.innerHeight * 0.01; document.documentElement.style.setProperty('--vh', `${vh}px`); } setScreenSize(); window.addEventListener('resize', setScreenSize); // Common Event function commonEvent(){ let html = document.querySelector('html'); let header = document.querySelector('header'); let headerMenu = document.querySelector('.h_menu'); let headerBurgerMenu = document.querySelector('.h_mobile__btn'); // let menuLists = document.querySelectorAll('.h_menu__li'); // let headerBurgerMenu = document.querySelector('.h_mobile__btn'); // let headerGlobalBtn = document.querySelector('.h_global__btn '); let windowWidth = window.innerWidth; let windowHeight = window.innerHeight; let mobileWidth = 1200; let scrollPos = 0; let stickyPos = 0; let ticking = false; let linkToggle; let timer; window.addEventListener('scroll', scroll, false); window.addEventListener('resize', resize, false); // Run Immediately (headerAnimate = function(){ windowWidth = window.innerWidth; windowHeight = window.innerHeight; scrollPos = window.scrollY || window.pageYOffset; animated(); if (windowWidth > mobileWidth) { burgerMaker(); } })(); // Animated function animated(){ sticky(); } // Sticky 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; } // Scroll Optimization function scroll(){ if(!ticking){ window.requestAnimationFrame(() => { call = 'scroll'; headerAnimate(call); ticking = false; }) } } // Resize Optimization function resize(){ clearTimeout(timer); timer = setTimeout(function () { timer = null; handle(); }, 66); } function handle() { call = "resize"; headerAnimate(call, windowWidth); } // PC Event headerMenu.addEventListener('mouseover', isOver); headerMenu.addEventListener('mouseout', isOut); function isOver(){ header.setAttribute('header-hover', 'on'); } function isOut(){ header.removeAttribute('header-hover'); } headerBurgerMenu.addEventListener("click", function(){ burgerMaker(this); }); function hideSubMenu() { linkToggle = document.querySelectorAll('.nav_menu__link'); for (let i = 0; i < linkToggle.length; i++) { linkToggle[i].classList.remove('on'); } } function clickSubMenu() { hideSubMenu(); for (let i = 0; i < linkToggle.length; i++) { linkToggle[i].addEventListener('click', function () { if (this.classList.contains('on')) { hideSubMenu(); } else { hideSubMenu(); this.classList.add('on'); } }); } } clickSubMenu(); function burgerMaker(e) { if (e === undefined || e.getAttribute('aria-pressed') === 'true') { header.setAttribute('data-header-mobile', 'off'); headerBurgerMenu.setAttribute('aria-pressed', 'false'); hideSubMenu(); html.style.overflow = ''; } else { headerBurgerMenu.setAttribute('aria-pressed', 'true'); header.setAttribute('data-header-mobile', 'on'); html.style.overflow = 'hidden'; linkToggle.forEach((link) => { link.addEventListener('click', function (e) { e.preventDefault(); }); }); } } } function enableProtection() { document.addEventListener('contextmenu', function(e) { e.preventDefault(); }); }