您必须使用组件的生命周期函数来处理“滚动”事件。
请为您的标头组件找到此示例。通过一些调整,您也许可以使用它。
类组件:
componentDidMount: function() {
window.addEventListener('scroll', this.handleScroll);
},
componentWillUnmount: function() {
window.removeEventListener('scroll', this.handleScroll);
},
handleScroll: function(event) {
let scrollTop = event.srcElement.body.scrollTop,
itemTranslate = Math.min(0, scrollTop/3 - 60);
this.setState({
transform: itemTranslate // and use this on your header
});
},
功能组件:
const [headerPosition, setHeaderPosition] = useState(0)
const handleScroll = useCallback((event) => {
let scrollTop = event.srcElement.body.scrollTop,
itemTranslate = Math.min(0, scrollTop/3 - 60);
setHeaderPosition({
transform: itemTranslate // and use this on your header
});
}, [setHeaderPosition])
useEffect(() => {
window.addEventListener('scroll', handleScroll);
return () => window.removeEventListener('scroll', handleScroll);
}, [handleScroll])