美文网首页
document.body与document.documentE

document.body与document.documentE

作者: 红叶楠飞 | 来源:发表于2018-05-25 20:21 被阅读0次

什么是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

页面存在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;

DTD简单可以理解为DOCTYPE

相关文章

网友评论

      本文标题:document.body与document.documentE

      本文链接:https://www.haomeiwen.com/subject/vmnujftx.html