需求
最近遇到一个变态需求,滚动的时候将元素x隐藏掉,当滚动条滚动停止的时候再把元素x显示出来。
思路
- 监听浏览器滚动事件( onscroll ),当然您也可以用Jquery写
- 事件触发的时候获取当前的scrollTop( t1 ),执行isScrollEnd函数( 建议延迟500 )
- 在isScrollEnd函数种再获取当前的scrollTop( t2 )
- 拿t2跟t1进行比较,看是否相等,相等的话说明滚动条停止了滚动
注意
每次滚动的时候都需要清空掉timer定时器,当您不滚动的时候才真正的执行到timeout里面的回调函数isScrollEnd,因为您在滚动的时候一直都在清空timer,因此不会执行isScrollEnd函数
代码
let