// 공통 이벤트
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();
}
});
}