componentDidMount() {
this.lastScrollPos = getScrollTop();
window.addEventListener('scroll', this.scrollUpDown);
}
componentWillUnmount() {
window.removeEventListener('scroll', this.scrollUpDown);
}
scrollUpDown() {
const scroll = this.lastScrollPos;
this.lastScrollPos = getScrollTop();
if (scroll < this.lastScrollPos) {
this.setState({shownMenu: false});
console.log('скролим вниз');
return;
}
if (scroll > this.lastScrollPos) {
this.setState({ shownMenu: true});
console.log('скролим вниз');
}
}
нужно в переменную сохранить значение проскролленых пикселей в момент, когда меняется направление скролла
getScrollTop() - кроссбраузерная функция определения количества проскролленых пикселей