js - body的滚动事件的坑


文章来源 : https://www.cnblogs.com/Zting00/p/7497629.html 

 

踩过些坑,得到的结论,不一定精确

1、

body的滚动条,刷新页面的时候不会回到顶部。其他dom节点会

2、

body只能通过onscroll函数表达式的方法来绑定滚动事件 
(其中,IE不能监听body的滚动事件)

document.querySelector('body').onscroll = function() { console.log(1) };

以下2种方式,均以失败告终

document.querySelector('body').addEventListener('onscroll', function() { console.log(2) }); $('body').on('scroll', function() { console.log(3); })

3、

即时通过上述方法勉强为body绑定上了滚动事件, 
那你要做好准备了,很有可能这个函数会莫名其妙的死掉(就是说,你滚动了鼠标,但并没有如你预期的去执行onscroll函数)

当你拿着鼠标疯狂的滚动的时候,它一定会死掉; 
或者你把这个页面放那,过了一会儿你又去调戏它,onscroll函数也很有可能不执行; 
就是这么矫情,你能把它咋滴 
注:貌似只有Edge不会死掉

4、说了这么多,解决方案呢?不要用body做滚动事件

最好用其他容器来做滚动事件的操作吧,如果非要用body?试试用document代替


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM