@uzi_no_uzi

Почему не срабатывает событие скролла?

Имеется такой компонент:

class App extends React.Component {

  constructor() {
    super();

    window.onscroll = function() {
      console.log(1);
    }

  }

  componentDidMount() {
    window.onscroll = function() {
      console.log(1);
    }
  }



  render() {
    window.onscroll = function() {
      console.log(1);
    }
  }
}


Почему нигде не срабатывает событие скролла?
  • Вопрос задан
  • 772 просмотра
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Видимо, потому что на странице отсутствует возможность скролла. Весь контент помещается в высоту окна.
Если это так, то для подобных кейсов используют событие mousewheel. Для кроссбраузерной обработки этого события, если важна одинаковая скорость скролла в разных браузерах, надо использовать адаптер, вроде normalize-wheel
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
RomReed
@RomReed
JavaScript, Flutter, ReactNative, Redux, Firebase
вот так попробуйте
componentDidMount() {
    window.addEventListener('scroll', this.handleScroll);
  }

  componentWillUnmount() {
    window.removeEventListener('scroll', this.handleScroll);
  }
   
  
  handleScroll = () => {
    alert("scroll");
  };
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы