<javascript高级程序设计>第十二章读书笔记—-偏移量


offsetHeight
包括元素的高度、上下内边距、上下边框值,如果元素的style.display的值为none,那么该值为0。
offsetWidth
包括元素的宽度、左右内边距、左右边框值,如果元素的style.display的值为none,那么该值为0。
offsetTop
元素的上外边框至包含该元素的上内边框之间的像素距离,当然包括元素的外边距,如果元素的style.display的值为none,那么该值为0。
offsetLeft
元素的左外边框至包含该元素的左内边框之间的像素距离,包括外边框,如果元素的style.display的值为none,那么该值为0。
offsetParent
该值为元素的包含元素。具体的值跟元素的定位有关,具体的值参考正美的博客。如果该元素的style.display的值为none,或者position的值为fixed,那么该值为null。这个还跟浏览器有关。概括起来就是距离该元素最近被定位的元素。

在 Webkit 中,如果元素为隐藏的(该元素或其祖先元素的 style.display 为 “none”),或者该元素的 style.position 被设为 “fixed”,则该属性返回 null。
在 IE 9 中,如果该元素的 style.position 被设置为 “fixed”,则该属性返回 null。(display:none 无影响。)

最后,所有这些偏移量都是只读的,而且每次访问他们都需要重新计算。为了避免重复计算,可以将计算的值保存起来,以提高性能。那么是不是jquery.offset().left等方法也是重复计算的呢?


8 responses on “<javascript高级程序设计>第十二章读书笔记—-偏移量

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>