mirror of
https://github.com/wahyd4/links.git
synced 2026-08-09 05:06:16 +10:00
71 lines
2.1 KiB
JavaScript
71 lines
2.1 KiB
JavaScript
function getCookie(name) {
|
|
let cookieValue = null;
|
|
if (document.cookie && document.cookie !== '') {
|
|
const cookies = document.cookie.split(';');
|
|
for (let i = 0; i < cookies.length; i++) {
|
|
const cookie = cookies[i].trim();
|
|
if (cookie.substring(0, name.length + 1) === (name + '=')) {
|
|
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return cookieValue;
|
|
}
|
|
|
|
// Scroll-responsive navigation functionality
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
const nav = document.getElementById('main-nav');
|
|
if (!nav) return;
|
|
|
|
let lastScrollTop = 0;
|
|
let scrollThreshold = 100; // Hide nav after scrolling down 100px
|
|
let isNavVisible = true;
|
|
|
|
function handleScroll() {
|
|
const currentScrollTop = window.pageYOffset || document.documentElement.scrollTop;
|
|
|
|
// Avoid negative scroll values on mobile
|
|
if (currentScrollTop < 0) return;
|
|
|
|
// Don't hide nav if we're at the top of the page
|
|
if (currentScrollTop < scrollThreshold) {
|
|
showNav();
|
|
lastScrollTop = currentScrollTop;
|
|
return;
|
|
}
|
|
|
|
// Determine scroll direction
|
|
if (currentScrollTop > lastScrollTop && isNavVisible) {
|
|
// Scrolling down - hide nav
|
|
hideNav();
|
|
} else if (currentScrollTop < lastScrollTop && !isNavVisible) {
|
|
// Scrolling up - show nav
|
|
showNav();
|
|
}
|
|
|
|
lastScrollTop = currentScrollTop;
|
|
}
|
|
|
|
function hideNav() {
|
|
nav.classList.remove('nav-visible');
|
|
nav.classList.add('nav-hidden');
|
|
isNavVisible = false;
|
|
}
|
|
|
|
function showNav() {
|
|
nav.classList.remove('nav-hidden');
|
|
nav.classList.add('nav-visible');
|
|
isNavVisible = true;
|
|
}
|
|
|
|
// Throttle scroll events for better performance
|
|
let scrollTimeout;
|
|
window.addEventListener('scroll', function() {
|
|
if (scrollTimeout) {
|
|
clearTimeout(scrollTimeout);
|
|
}
|
|
scrollTimeout = setTimeout(handleScroll, 10);
|
|
});
|
|
});
|