#javascript #scroll #event-listener #throttling #requestanimationframe
#javascript #прокрутка #прослушиватель событий #регулирование #requestanimationframe
Вопрос:
Все работает нормально, но я хочу отключить это событие прокрутки с помощью requestAnimationFrame
const header = document.querySelector("header#site-header");
let lastScroll = Math.round(window.scrollY);
function onScroll() {
const currentScroll = Math.round(window.scrollY);
if (currentScroll <= 50) return header.classList.remove("scrolled");
if (currentScroll > lastScroll 1) header.classList.add("scrolled");
else if (currentScroll < lastScroll - 1) header.classList.remove("scrolled");
lastScroll = currentScroll;
// console.log("scrolled");
}
window.addEventListener("scroll", onScroll);
Комментарии:
1. Проверьте codepen.io/dcorb/pen/pgOKKw
2. Нет необходимости регулировать событие прокрутки с помощью rAF, как события прокрутки, так и rAF запускаются на одном и том же этапе «обновить рендеринг» цикла событий, событие прокрутки уже регулируется до частоты обновления экрана. jsfiddle.net/aujqx28L