File: /home/elrashedytravel/public_html/wp-content/themes/custom-functions-1767952375/js/header-scroll.js
document.addEventListener('DOMContentLoaded', function() {
const header = document.getElementById('masthead');
// If the header element doesn't exist, do nothing.
if (!header) {
return;
}
let lastScrollTop = 0;
let isScrolling = false;
// 防抖函数
function debounce(func, wait) {
let timeout;
return function executedFunction(...args) {
const later = () => {
clearTimeout(timeout);
func(...args);
};
clearTimeout(timeout);
timeout = setTimeout(later, wait);
};
}
function handleScroll() {
const currentScrollTop = window.pageYOffset || document.documentElement.scrollTop;
// 如果在页面顶部,始终显示header
if (currentScrollTop <= 0) {
header.classList.remove('header-hidden');
header.classList.add('header-visible');
lastScrollTop = currentScrollTop;
return;
}
// 滚动距离小于header高度时不隐藏
if (currentScrollTop < 100) {
header.classList.remove('header-hidden');
header.classList.add('header-visible');
lastScrollTop = currentScrollTop;
return;
}
// 向下滚动 - 隐藏header
if (currentScrollTop > lastScrollTop && !header.classList.contains('header-hidden')) {
header.classList.remove('header-visible');
header.classList.add('header-hidden');
}
// 向上滚动 - 显示header
else if (currentScrollTop < lastScrollTop && !header.classList.contains('header-visible')) {
header.classList.remove('header-hidden');
header.classList.add('header-visible');
}
lastScrollTop = currentScrollTop;
}
// 使用防抖优化滚动性能
const debouncedHandleScroll = debounce(handleScroll, 10);
// 添加滚动监听器
window.addEventListener('scroll', debouncedHandleScroll, { passive: true });
// 初始状态
header.classList.add('header-visible');
});