如何获取元素的尺寸和位置——两个冷门方法

获取元素的尺寸,似乎offsetWidth/Height就可以了,还需要什么方法吗?
的确,一般情况下,获取元素尺寸,用offsetWidth/Height就搞定了,但如果这个元素是display:none的呢?
试验一下就知道,none元素的尺寸是0。

所以需要我们下面的这个方法来获取。

 

第二个,获取元素的位置。
或许你经常使用offsetLeft/Top来获取位置,不过offsetLeft/Top是相对 offsetParent的位置(在ie6,7下是相对直接父级的),并且在firefox下还有些小bug

下面这个方法提供获取元素相对于窗口(页面可视区)的距离。

 

这个方法是由ie提出的,不过在其他浏览器吸收之后,还加了width,height两个值。

重复一下,这个方法是相对于页面窗口的,至于相对于整个页面文档的距离,那只需加上scrollTop这些值就行了,不做赘述。