什么是document.body?

返回html dom中的body节点 即<body>

什么是 document.documentElement?

返回html dom中的root 节点 即<html>

document.documentElement 与 document.body的应用场景

获取 scrollTop 方面的差异

在chrome(版本 52.0.2743.116 m)下获取scrollTop只能通过document.body.scrollTop,而且DTD是否存在,不会影响 document.body.scrollTop的获取。通过console查看结果:demo 1 with doctype : http://jsbin.com/cisacam demo 2 without doctype: http://jsbin.com/kamexad/16

firefox(47.0)及 IE(11.3)下获取scrollTop,DTD是否存,会影响document.body.scrollTop 与 document.documentElement.scrollTop的取值

在firefox(47.0)页面存在DTD,使用document.documentElement.scrollTop获取滚动条距离;
页面不存在,使用document.body.scrollTop 获取滚动条距离demo 1 with doctype : http://jsbin.com/cisacam demo 2 without doctype: http://jsbin.com/kamexad/16

IE(11.3)

页面存在DTD,使用document.documentEelement.scrollTop获取滚动条距离页面不存在DTD,使用document.documentElement.scrollTop 或 document.body.scrollTop都可以获取到滚动条距离demo 1 with doctype : http://jsbin.com/cisacam demo 2 without doctype: http://jsbin.com/kamexad/16

兼容解决方案:

var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;

转载于:https://www.cnblogs.com/agansj/p/7874842.html

document.body 与 document.documentElement区别介绍相关推荐

  1. document.body、document.documentElement和window获取视窗大小的区别

    来源:http://www.ido321.com/906.html 在w3school关于window对象的介绍中,介绍了获取浏览器窗口大小的三种方法(浏览器的视口,不包括工具栏和滚动条). 对于In ...

  2. document.body和document.documentElement的区别

    document.body和document.documentElement的区别主要在<html>文件中有没有DTD声明. 详情参看<docuement.body和document ...

  3. “约见”面试官系列之常见面试题之第六十九篇之document.ready和onload的区别(建议收藏)

    document.ready和onload的区别为:加载程度bai不同du.执行次数不同.执行速度zhi不同. 一.加载程度不同 1.document.ready:在DOM加载完成dao后就可以可以对 ...

  4. MongoDB:SpringBoot有关@Document(collection = )与@Document(collation= )注解的区别

    目录 QUESTION:SpringBoot有关@Document(collection = "")与@Document(collation= "")注解的区别 ...

  5. document.ready和onload的区别

    document.ready和onload的区别--JavaScript文档加载完成事件  页面加载完成有两种事件  一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件)  二是on ...

  6. javascript 中的window, document, screen都有什么区别?

    谷歌之后,从stackoverflow上找到的高赞答案: https://stackoverflow.com/questions/9895202/what-is-the-difference-betw ...

  7. 关于document.selection和TextRange对象的介绍

    document.selection只有IE支持 window.getSelection()也只有FireFox和Safari支持,都不是标准语法. selection 对象代表了当前激活选中区,即高 ...

  8. if vue 跳出_vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍

    vue如何简单的实现弹框,遮罩,点击其他区域关闭弹框, 简单的思路是以一个div作为遮罩, 控制其的v-if(v-show)即可, 掌握到技巧既可以任意扩展. v-if 是直接删除dom节点, 就是这 ...

  9. document 和 window.document

    通常我在写javascript的时候从来没有意识到document和window.document之间是有区别的,实际使用过程中也确实没有遇到问题,但是这埋下了非常大的隐患,当出现问题时,这个bug就 ...

最新文章

  1. MIME 类型(HttpContext.Response.ContentType)列表
  2. oracle的用户账号密码设置
  3. Redhat Linux网卡配置与绑定
  4. 左神算法:用栈来求解限制后的汉诺塔问题(Java版)
  5. SpringMVC校验---SpringMVC学习笔记(八)
  6. JavaScript之判断用户登录信息
  7. 一文详解 Java 的八大基本类型!
  8. Vue路由及路由守卫
  9. linux强行退出线程,Linux 多线程编程--线程退出
  10. 4-Collection、List、Iterator和泛型
  11. 20种银河科幻风格ps字体样式
  12. windows操作系统32位与64位的含义
  13. tushare获取沪深300指数历史_tushare正确爬取 指数数据
  14. 5.秒杀模块-基于redis缓存商品秒杀信息
  15. 从前世看今生,从JavaEE到微服务
  16. 移动硬盘更改驱动器号和路径_如何在Windows 10中更改默认硬盘驱动器以保存文档和应用程序...
  17. 用chrome按F12抓包 页面跳转POST一瞬间就闪没了
  18. 创新实验室实习生每周工作总结【实习第四周】
  19. 分布式调度平台xxl-job的使用及其算法分析
  20. ueditor 图片上传 java_Spring+Vue整合UEditor富文本实现图片附件上传的方法

热门文章

  1. vnc连接服务器怎么修改配置,vnc连接服务器怎么配置
  2. linux hadoop 伪分布,linux配置Hadoop伪分布安装模式
  3. php大量数据库抽象,数据库的数据抽象有几个级别
  4. 移动端点击链接元素出现蓝色边框或者出现半透明蓝色背景
  5. linux oracle 删除为空的dbf,Linux上Oracle误删除一个没有用的dbf表空间文件
  6. 大蛋陪伴机器人_家长孩子都喜欢 阿尔法蛋大蛋2.0 AI学习机器人图赏
  7. 计算机网关,如何查看计算机的IP地址和网关
  8. c语言追踪机械腿位置,基于传感器的下肢可穿戴机械腿软件系统设计与实现
  9. aps后缀是什么文件_今日份知识分享:什么是源文件?
  10. oracle容器部署,Linux docker oracle 部署