Я пытаюсь использовать addEventListener
, когда пользователь scroll
в поле зрения <div id="container">
. Я сделал это по высоте свитка, но мои попытки к addEventListener
, когда <div>
вверху окна.
handleHeaderStuck = () => {
if (this.innerContainer.scrollTop <= 500 && this.state.isStuck === true) {
this.setState({isStuck: false});
}
else if (this.innerContainer.scrollTop >= 500 && this.state.isStuck !== true) {
this.setState({isStuck: true});
}
}
Это будет setState
при прокрутке 500px
.
Как я могу заменить условие 500px
, которое должно быть установлено, когда пользователь имеет id="container"
в качестве верхней части окна? Также замените состояние isStuck
на isStuckBottom
, когда пользователь достигнет нижней части деления.
Полный код
constructor(props) {
super(props)
this.state = {
isStuck: false,
}
this.handleHeaderStuck = this.handleHeaderStuck.bind(this)
}
innerContainer = null
componentDidMount () {
this.innerContainer.addEventListener("scroll", this.handleHeaderStuck);
}
componentWillUnmount () {
this.innerContainer.removeEventListener("scroll", this.handleHeaderStuck);
}
handleHeaderStuck = () => {
if (this.innerContainer.scrollTop <= 500 && this.state.isStuck === true) {
this.setState({isStuck: false});
}
else if (this.innerContainer.scrollTop >= 500 && this.state.isStuck !== true) {
this.setState({isStuck: true});
}
}