Как отследить направление скролла на станице? JS

Допустим, нужно что бы при скролле вниз в консоль выводился 0, а при скролле вверх 1


Ответы (3 шт):

Автор решения: MoloF

Решение с помощью scrollTop

let oldScrollTopPosition = 0;

window.onscroll = () => {
	const scrollTopPosition = document.documentElement.scrollTop;
	console.log(oldScrollTopPosition > scrollTopPosition);
	oldScrollTopPosition = scrollTopPosition;
}
body {
	min-height: 200vh;
}


Решение с помощью Wheel

window.onwheel = (e) => console.log(e.deltaY < 0);

→ Ссылка
Автор решения: Sevastopol'

var scroll = 0;
window.onscroll = onScroll;
function onScroll() {
  var top = window.pageYOffset;
  if (scroll > top) {
    console.log('1');
  } else if (scroll < top) {
    console.log('0');
  }
  scroll = top;
}
body {height: 5000px}

→ Ссылка
Автор решения: Vadim
let was = 0;

const scrollGoing=(tf)=>{
    if(was !== tf){
        console.log('scroll', tf ? 'down' : 'up', tf);
    }
    was = tf;
};

window.onwheel=({deltaY})=>scrollGoing(deltaY > 0);
→ Ссылка