思路
1、开启滑动监听
2、定义获取滑动当前距离 函数 getScollTop ()
3、定义两个值 一个当前值 一个滑动后的值 初始值为0(也是 上一次滑动距离值)
4、 滑动时 获取当前滑动值
比较上次值 跟当前滑动值
最后设置 旧值为此次滑动距离值
let scrollTop = 0
let topValue = 0
const getScollTop = () => {
let scrollTop = 0;
if( document?.documentElement && document?.documentElement?.scrollTop)
{
scrollTop = document?.documentElement.scrollTop;
}
else if(document?.body)
{
scrollTop=document?.body.scrollTop;
}
return scrollTop;
}
const bindHandleScroll = () => {
scrollTop = getScollTop();
if (scrollTop <= topValue) {
console.log('向上')
setIsShow(false)
}
else {
console.log('向下')
setIsShow(true)
}
setTimeout(function(){topValue=scrollTop ;},0);
}
useEffect(() => {
window.addEventListener('scroll', bindHandleScroll)
return () => {
window.removeEventListener('scroll', bindHandleScroll)
}
}, [])