$(window).width()与$(window).height()
$(window).width()与$(window).height()
获得的是屏幕可视区域的宽高,不包括滚动条与工具条。1
2$(window).width() = width + padding
$(window).height() = height + padding
document.documentElement.clientWidth与document.documentElement.clientHeight
document.documentElement.clientWidth
与document.documentElement.clientHeight
获得的是屏幕可视区域的宽高,不包括滚动条与工具条,跟jquery
的$(window).width()
与$(window).height()
获得的结果是一样的。
1 | document.documentElement.clientWidth = width + padding |
window.innerWidth与window.innerHeight
window.innerWidth
与window.innerHeight
获得的是可视区域的宽高,但是window.innerWidth
宽度包含了纵向滚动条的宽度,window.innerHeight
高度包含了横向滚动条的高度。
IE 8 及更早 IE版本不支持这两个属性。
1 | window.innerWidth = width + padding + border + 纵向滚动条宽度 |
window.outerWidth与window.outerHeight
window.outerWidth
与window.outerHeight
获得的是加上工具条与滚动条窗口的宽度与高度。1
2window.outerWidth = width + padding + border + 纵向滚动条宽度
window.outerHeight = height + padding + border + 横向滚动条高度 + 工具条高度
document.body.clientWidth与document.body.clientHeight
document.body.clientWidth获得的也是可视区域的宽度,但是document.body.clientHeight获得的是body内容的高度,如果内容只有200px,那么这个高度也是200px,如果想通过它得到屏幕可视区域的宽高,需要样式设置,如下:
1 | body { |
offsetWidth & offsetHeight
返回内容的宽高 + padding + border + 滚动条
offsetLeft & offsetTop
所有HTML元素拥有offsetLeft和offsetTop属性来返回元素的X和Y坐标
1.相对于已定位元素的后代元素和一些其他元素(表格单元),这些属性返回的坐标是相对于祖先元素
2.一般元素,则是相对于文档,返回的是文档坐标
offsetParent属性指定这些属性所相对的父元素,如果offsetParent为null,则这些属性都是文档坐标
1 | //用offsetLeft和offsetTop来计算e的位置 |
scrollWidth & scrollHeight
这两个属性是元素的内容区域加上内边距,在加上任何溢出内容的尺寸.
因此,如果没有溢出时,这些属性与clientWidth和clientHeight是相等的。
scrollLeft & scrollTop
指定的是元素的滚动条的位置
scrollLeft和scrollTop都是可写的属性,通过设置它们来让元素中的内容滚动。
兼容性
window innerWidth 和 innerHeight 属性与outerWidth和outerHeight属性IE8以及以下不支持。
测试浏览器IE,火狐,谷歌,360浏览器,Safari都支持
document.documentElement.clientWidth
与document.documentElement.clientHeight
。