JS获取各种宽度、高度的简单介绍:
scrollHeight
: 获取对象的滚动高度。scrollLeft
:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离scrollTop
:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离scrollWidth
:获取对象的滚动宽度offsetHeight
:获取对象相对于版面或由父坐标offsetParent
属性指定的父坐标的高度offsetLeft
:获取对象相对于版面或由offsetParent
属性指定的父坐标的计算左侧位置offsetTop
:获取对象相对于版面或由offsetTop
属性指定的父坐标的计算顶端位置event.clientX
相对文档的水平座标event.clientY
相对文档的垂直座标event.offsetX
相对容器的水平坐标event.offsetY
相对容器的垂直坐标document.documentElement.scrollTop
垂直方向滚动的值event.clientX+document.documentElement.scrollTop
相对文档的水平座标+垂直方向滚动的量
以上主要指IE之中,FireFox差异如下:
IE6.0、FF1.06+:
- clientWidth = width + padding
- clientHeight = height + padding
- offsetWidth = width + padding + border
- offsetHeight = height + padding + border
IE5.0/5.5:
- clientWidth = width - border
- clientHeight = height - border
- offsetWidth = width
- offsetHeight = height
其它概念
(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)
offsetWidth (width+padding+border)
假设 obj 为某个 HTML 控件。
-
obj.offsetTop 指 obj 距离上方或上层控件的位置,整型,单位像素。
-
obj.offsetLeft 指 obj 距离左方或上层控件的位置,整型,单位像素。
-
obj.offsetWidth 指 obj 控件自身的宽度,整型,单位像素。获取对象可见内容的宽度,不包括滚动条,不包括边框;
-
obj.offsetHeight 指 obj 控件自身的高度,整型,单位像素。
offsetWidth 与 style.width 的区别
一、offsetTop 返回的是数字,而 style.top 返回的是字符串,除了数字外还带有单位:px。
二、offsetTop 只读,而 style.top 可读写。
三、如果没有给 HTML 元素指定过 top 样式,则 style.top 返回的是空字符串。