文章来源 : 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代替

js - body的滚动事件的坑的更多相关文章

  1. js网页滚动条滚动事件实例分析

    本文实例讲述了js网页滚动条滚动事件用法.分享给大家供大家参考.具体分析如下: 在做js返回顶部的效果时,要监听网页滚动条滚动事件,这个事件就是:window.onscroll.当onscroll事件 ...

  2. js鼠标滑轮滚动事件绑定(兼容主流浏览器)

    /** Event handler for mouse wheel event. *鼠标滚动事件 */ var wheel = function(event) { var delta = 0; if ...

  3. js监控鼠标滚动事件

    //滚动动画 windowAddMouseWheel(); function windowAddMouseWheel() { var scrollFunc = function (e) { e = e ...

  4. 19 01 15 js 尺寸相关 滚动事件

    尺寸相关.滚动事件 1.获取和设置元素的尺寸 width().height() 获取元素width和height innerWidth().innerHeight() 包括padding的width和 ...

  5. JS实现鼠标滚动事件,兼容IE9,FF,Chrome.

    <!-- 废话不多说,直接贴代码 --><script type="text/javascript" src="jquery.min.js"& ...

  6. js 两个滚动事件相互影响

    document.addEventListener('scroll', function(event) { if (event.target.id === 't_r_content') { // or ...

  7. 页面滚动事件和利用JS实现回到顶部效果

    页面滚动 事件:window.onscroll, 获得页面滚动位置:document.body.scrollTop: HTML代码: 这里注意此处逻辑,大于500就显示,否则就隐藏,还有注意如果变量名 ...

  8. JS鼠标滚动事件

    -----------------------------//鼠标滚动事件以下是JS临听鼠标滚动事件 并且还考虑到了各浏览器的兼容----------------------------------- ...

  9. js整频滚动展示效果(函数节流鼠标滚轮事件)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. js进阶 12-6 监听鼠标滚动事件和窗口改变事件怎么写

    js进阶 12-6 监听鼠标滚动事件和窗口改变事件怎么写 一.总结 一句话总结:滚动事件scroll(),浏览器窗口调整监听resize(),思考好监听对象. 1.滚动事件scroll()的监听对象是 ...

随机推荐

  1. 微软真是活菩萨,面向初学者的机器学习、数据科学、AI、LLM课程统统免费

    微软真是活菩萨,面向初学者的机器学习.数据科学.AI.LLM课程统统免费 大家好,我是老章 推荐几个质量上乘且完全免费的微软开源课程 面向初学者的机器学习课程 地址:https://microsoft ...

  2. Windows系统修复(System Update Readiness Tool、SFC模式、DISM命令)可解决系统更新问题。

    安装System Update Readiness Tool 提供此更新是因为在 Windows servicing store 中发现了不一致,这可能会影响将来成功安装更新.service pack ...

  3. libGDX游戏开发之游戏纹理精灵切割(十六)

    libGDX游戏开发之游戏纹理精灵切割(十六) libGDX系列,游戏开发有unity3D巴拉巴拉的,为啥还用java开发?因为我是Java程序员emm-国内用libgdx比较少,多数情况需要去官网和 ...

  4. Git使用经验总结3-删除远端提交记录

    目录 1. 问题 2. 解决方案 3. 参考 1. 问题 如果将有问题的代码提交到代码仓库甚至已经push到远端,这个时候就得想办法把提交撤销.一种方案是使用git revert,不过会造成历史记录留 ...

  5. Spark SQL快速入门

    Spark SQL快速入门 1.概述 spark SQL是Apache用于处理结构化数据的模块.其中包含SQL.DataFrame API.DataSet API,意味着开发人员可以在不同的API之间 ...

  6. 【小白学YOLO】一文带你学YOLOv1 Testing

    摘要:本文将为初学者带详细分析如何进行YOLOv1 Testing的内容. YOLOv1 Testing 进入testing阶段,我们已经得到98个bounding box和confidence还有C ...

  7. 一种DWS迁移Oracle的CONNECT BY语法的方案

    摘要:本文提供一种GaussDB DWS迁移CONNECT BY语法方案. 本文分享自华为云社区<GaussDB(DWS)迁移 - oracle兼容 -- CONNECT BY迁移>,作者 ...

  8. 一文详解TensorFlow模型迁移及模型训练实操步骤

    摘要:本文介绍将TensorFlow网络模型迁移到昇腾AI平台,并执行训练的全流程.然后以TensorFlow 1.15训练脚本为例,详细介绍了自动迁移.手工迁移以及模型训练的操作步骤. 本文分享自华 ...

  9. Colocate Join :ClickHouse的一种高性能分布式join查询模型

    摘要:本文将介绍业界MPP分布式数据库join查询模型,以及ClickHouse的分布式查询原理解析和Colocate join性能表现. 本文分享自华为云社区<ClickHouse一种高性能分 ...

  10. 一起玩转LiteOS组件:Pixman

    摘要:本文将以Pixman Demo为例,详细说明Pixman的功能. 本文分享自华为云社区<LiteOS组件尝鲜-玩转Pixman>,作者:Lionlace. 基本介绍 Pixman是由 ...