关于jQuery中的 offset() 和 position() 的用法
---恢复内容开始--- 在jQuery中有两个获取元素位置的方法 offset() 和 position() 。 position() 方法是在1.2.6版本之后加入的,为什么要引入这个方法呢?这两个方法之间有什么异同?使用的时候应该注意哪些问题?什么时候使用 offset() ,什么时候又使用 position() 呢? 先看看API对这这两个方法的定义: offset() : 获取匹配元素在当前视口的相对偏移。 返回的对象包含两个整形属性:top 和 left。此方法只对可见元素有效。 position() : 获取匹配元素相对父元素的偏移。 返回的对象包含两个整形属性: top 和 left 。为精确计算结果,请在补白、边框和填充属性上使用 像素单位 。此方法只对可见元素有效。 真的就这么简单吗?实践出真知。 先来看看在jQuery框架源码里面,是怎么获得 position() 的: //Get *real* offsetParent var offsetParent = this.offsetParent(), //Get correct offsets offset = this.offset(), parentOffset = /^body|html$/i.test(offsetParent[0].tagName) ? { top : 0, left : 0 } :