// 添加滚动事件
this.timer = setTimeout(() => {
this.setState({
navbarTop: $('.navBar').offset().top
})
window.onscroll = this.onScroll.bind(this)
}, 100)
/**
* [滚动事件]
*/
onScroll = (e) => {
let scrollTop = document.body.scrollTop || document.documentElement.scrollTop
if (scrollTop < this.state.navbarTop) {
$('.navBar').css({position: 'relative',boxShadow:'none'})
} else {
$('.navBar').css({position: 'fixed', top: 0,boxShadow: '1px 1px 8px 1px rgba(0, 0, 0, 0.2)'})
}
}
// 销毁滚动事件
componentWillUnmount () {
clearInterval(this.timer)
window.onscroll = null
}
在react中滚动事件要用 window.onscroll , 不能用addeventlistener