document.documentElement与body下clientHeight,scrollHeight等区别
Posted web_study
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了document.documentElement与body下clientHeight,scrollHeight等区别相关的知识,希望对你有一定的参考价值。
本次说明仅在chrom环境下,ie等其他浏览器可能不同
1获取显示屏高度(pc和移动端)
window.screen.height => 这个好理解,不多说。
2获取浏览器可视窗口高度(PC端)
document.documentElement.clientHeight => 就是网页在浏览器中可见高度,不包括浏览器自身的状态栏,随着浏览器大小变化;
3获取网页内容高度
1)document.documentElement.scrollHeight = document.documentElement.offsetHeight => 就是整个网页文档body的高度,随着网页内容的多少变化,包括网页内的所有border,margin,padding;
2)body.clientHeight = body.offsetHeight => body的内容高度,不包括margin和border值,实际上就是body的height值;
3)body.scrollHeight => 包括body的margin,body值,;
a 当网页内容超出浏览器可视窗口高度值时,= body.clientHeight+margin+border = document.documentElement.scrollHeight ;
b 当网页内容较少未超出时,= document.documentElement.clientHeigh 也就是浏览器窗口高度值(这是它的最小值);
4滚动条的高度值
body.scrollTop => 页面滚动上去的高度值;(注:document.docuemtnElement没有该属性)
这几个属性在前段开发中的应用场景:
1)下拉加载(移动端上拉加载),就是通过判断元素是否显示在当前可视窗口内,读取数据并显示
2)图片的懒加载——前端网页优化的一种手段,也是判断用户浏览的内容区域是否显示在可视窗口中,替换图片src属性值。
需要注意的是:pc端获取可视出口高度可使用document.documentElement.clientHeight,移动端不要使用该属性(亲测该值很高远远超过显示器的高度iphone6达到1743px),使用window.screen.height获取手机显示的高度.
以上是关于document.documentElement与body下clientHeight,scrollHeight等区别的主要内容,如果未能解决你的问题,请参考以下文章
document.body.scrollTop与document.documentElement.scrollTop兼容
document.documentElement.clientHeight 与 document.body.clientHeight(杜绝千篇一律的抄袭!!)
document.documentElement.clientHeight 与 document.body.clientHeight(杜绝千篇一律的抄袭!!)
JS基础篇-- body.scrollTop与documentElement.scrollTop