JS中的位置和宽度

前提是你 提交于 2020-04-06 17:53:28

元素的宽高

以下所有的宽高,基于元素被加入到DOM渲染树后,也就是被添加在页面中以后,才可以获取

当元素没有滚动条时

元素.clientWidth     

等于元素的width+padding

元素.clientHeight     

等于元素的height+padding

元素.offsetWidth     

等于元素的width+padding+border

元素.offsetHeight    

等于元素的height+padding+border

元素.scrollWidth 

 等于元素的width+padding

元素.scrollHeight   

等于元素的height+padding

当元素有滚动条时

元素.clientWidth     

等于元素的width+padding-17(滚动条宽高)

元素.clientHeight     

等于元素的height+padding-17(滚动条宽高)

元素.offsetWidth     

等于元素的实际占位的宽度

元素.offsetHeight    

等于元素的实际占位的高度

元素.scrollWidth   

 因为内容宽度不同,等于元素的实际内容宽度+padding

元素.scrollHeight   

因为内容高度不同,等于元素的实际内容高度+padding

body,HTML的宽高

document.body.clientWidth,document.body.clientHeight   (body的clientHeight  和clientWidth )

页面宽度-16(默认8个像素的宽度)   高度0(因为没有内容)如果有内容会撑开

document.body.offsetWidth,document.body.offsetHeight(body的offsetWidth和offsetHeight)

与body的clientWidth、clientHeight相同

document.body.scrollWidth,document.body.scrollHeight(body的scrollWidth和scrollHeight)

没有内容时和body的clientWidth相同,有内容,内容撑开的宽高,和clientHeight相同,是内容宽高

document.documentElement.clientWidth,document.documentElement.clientHeight(HTML的clientHeight  和clientWidth)

获取页面的可视宽高  ,并不会因为内容变大而撑开

document.documentElement.offsetWidth,document.documentElement.offsetHeight(HTML的offsetHeight和offsetWidth)

获取页面的可视宽度,html的高度是body内容高度+bodyMargin

document.documentElement.scrollWidth,document.documentElement.scrollHeight(HTML的scrollWidth和scrollHeight)

如果没有body没有高度,则是可视宽高
如果body有宽高,不超过可视宽高,则是可视宽高
如果body的宽高超出可视范围,则是body宽高+margin(宽度+margin,高度+margin*2)

元素的位置属性

元素.clientLeft,元素.clientTop       

等于元素的border

元素.offsetLeft,元素.offsetTop      

没有定位时,相对页面的左上顶角位置
如果定位 相对父容器左上角位置  和css中left,top相同

元素.scrollLeft,元素.scrollTop

元素上的滚动条位置
 

body,HTML的位置属性

document.body.clientLeft,document.body.clientTop

document.documentElement.clientLeft,document.documentElement.clientTop

body 和 html没有边线,所有这两个值都是0

document.body.offsetLeft,document.body.offsetTop

document.documentElement.offsetLeft,document.documentElement.offsetTop

 因为body和html标签都是最顶端,最外层,这两个值都是0

document.documentElement.scrollLeft,document.documentElement.scrollTop

window的滚动条是document.documentElement的scrollTop
window窗口的滚动条位置获取和设置可以通过document.documentElement.scrollLeft,document.documentElement.scrollTop来实现

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!