Często zdarza się, że menu nawigacyjne lub inne elementy strony zmieniają swój wygląd podczas przewijania strony. Aby to osiągnąć, można użyć prostego skryptu JavaScript. Dodaje on klasę .zescrollowana-strona
do elementu body
po przewinięciu strony o więcej niż np. 150 pikseli.
Przykładowy kod javascript:
// Funkcja debouncing
function debounce(func, wait) {
let timeout;
return function(...args) {
const context = this;
clearTimeout(timeout);
timeout = setTimeout(() => func.apply(context, args), wait);
};
}
// Funkcja obsługująca przewijanie strony
function handleScroll() {
if (window.scrollY > 150) {
document.body.classList.add('zescrollowana-strona');
} else {
document.body.classList.remove('zescrollowana-strona');
}
}
// Dodanie obsługi przewijania z debouncingiem
const debouncedHandleScroll = debounce(handleScroll, 100);
window.addEventListener('scroll', debouncedHandleScroll);
CSS:
#element{
/* reguły gdy na górze strony */
}
body.zescrollowana-strona #element{
/* reguły podczas zescrollowania */
}