jQuery.offset()方法介绍
jQuery.offset()方法获取或设置元素的坐标,坐标相对于文档。
.offset()获取一个元素相对于文档(document)的当前位置,相对于文档(document)的当前位置。
- 当通过全局操作(特别是通过拖拽操作)将一个新的元素放置到另一个已经存在的元素的上面时,若要取得这个新的元素的位置,那么使用 .offset() 更合适。
- 当把一个新元素放在同一个容器里面另一个元素附近时,用.position()更合适。(和offset()使用一样,有一个left和top属性,.position().left/.position().top或者设置.position({left: 30,top: 30}))
注意:jQuery不支持获取隐藏元素的偏移坐标。同样的,也无法取得隐藏元素的 border, margin, 或 padding 信息。
若元素的属性设置的是 visibility:hidden,那么我们依然可以取得它的坐标。但是若设置的属性是 display:none,由于在绘制 DOM 树时根本就不绘制该元素,所以它的位置属性值是 undefined。
- .offset( coordinates )
coordinates
类型: PlainObject
一个包含top 和 left属性的对象,用整数指明元素的新顶部和左边坐标。
.offset({left: xx,top: xx})使用键值对方式赋值
- .offset( function(index, coords) )
function(index, coords)
类型: Function()
返回用于设置坐标的一个函数。接收元素在匹配的元素集合中的索引位置作为第一个参数,和当前坐标作为第二个参数。这个函数应该返回一个包含top 和 left属性的对象。
.offset()方法允许我们重新设置元素的位置,这个元素的位置是相对于document对象的。如果对象原先的.position()样式属性是static的话,会被改成relative来实现重定位。