关于window.onscroll事件不执行

最近在练习手写css训练,在仿写天猫首页的过程中,有一个回到顶部的特效,特效本身很好实现,当页面滑动到一定位置时,回到顶部的按钮才出现。这一特效本身可以配合JS的window.onscroll事件来实现,不过,发现我的window.onscroll事件遇上问题没有执行。
于是依次排查:

1
window.onscroll=function(){
console.log('ok');//ok并没有打印出来,所以这个事件并没有执行出来
}

于是我怀疑是不是其他的js影响到了它,于是把页面上所有的脚本去除,同样发现window.onscroll没有执行。最后我将CSS文件去掉,发现,可以正常的打印ok,所以,问题应该是出现在css文件中。

最后依次排查,发现如果你的样式表页面最外层的元素设置了overflow的属性,便会影响window.onscroll事件的执行。

具体原因的归结应该是overflow属性会影响scroll,导致无法获取scroll的位置,从而导致window.onscroll无法监听到scroll的变化而不执行。