// Common Event 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 burgerMenu = document.querySelector('.h_mobile__btn'); let timer; // 페이지 로드 시점 header.classList.add('on'); // Scroll Event 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 scroll(){ if(!ticking){ window.requestAnimationFrame(() => { call = 'scroll'; headerAnimate(call); ticking = false; }); ticking = true; } } function resize(){ clearTimeout(timer); timer = setTimeout(function () { timer = null; handle(); }, 66); } function handle() { call = "resize"; headerAnimate(call, windowWidth); } function sticky(){ let scrollPos = window.pageYOffset || document.documentElement.scrollTop; if(scrollPos > 0){ header.setAttribute('data-header-sticky', 'on'); } else { header.removeAttribute('data-header-sticky',''); } stickyPos = scrollPos <= 0 ? 0 : scrollPos; } // Header Menu List let menuLists = document.querySelectorAll('.h_menu__list'); menuLists.forEach((list) => { list.addEventListener('mouseenter', function(){ menuLists.forEach((other) => { other.classList.remove('on'); }); list.classList.add('on'); header.classList.add('menu-active'); }); list.addEventListener('mouseleave', function () { list.classList.remove('on'); header.classList.remove('menu-active'); }); }); // Header User Button let userBtns = document.querySelector('.h_user'); let userMenu = document.querySelector('.h_user__menu'); userBtns.addEventListener('mouseenter', isOver, false); userBtns.addEventListener('mouseleave', isOut, false); function isOver(){ userBtns.classList.add('on'); } function isOut(){ userBtns.classList.remove('on'); } // Header Mobile Button 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(); }); }); } } // AOS Animation AOS.init({ duration:800, offset:300, // easing: 'ease-in-out', once: true, }); } // Scroll Top Event function scrollEvent(){ const html = document.querySelector('html'); let scrollTop = document.querySelector('.scroll-top'); window.addEventListener('scroll', function(){ let windowHeight = window.innerHeight; scrollPos = window.scrollY || window.pageYOffset; if(scrollPos > windowHeight / 2){ html.setAttribute('data-scroll-top','true'); } else { html.removeAttribute('data-scroll-top'); } }); scrollTop.addEventListener('click', function(e){ e.preventDefault(); window.scroll({top: 0, left: 0, behavior: 'smooth'}); }); } function prevPage(seq) { if(seq === 0) { alert("This is the first page."); return false; } location.href = "./view.php?seq="+seq; } function nextPage(seq) { if(seq === 0) { alert("This is the last page."); return false; } location.href = "./view.php?seq="+seq; }