jQuery 中有两个获取元素位置的方法offset()和position(),两者之间有什么不同和分别呢?
offset():
获取匹配元素在当前视口的相对偏移。
返回的对象包含两个整形属性:top 和 left。此方法只对可见元素有效。
.offset()方法可以让我们重新设置元素的位置。这个元素的位置是相对于document对象的。如果对象原先的position样式属性是
static的话,会被改成relative来实现重定位。
position():
获取匹配元素相对父元素的偏移。
返回的对象包含两个整形属性:top 和 left。为精确计算结果,请在补白、边框和填充属性上使用像素单位。此方法只对可见元素有效。
总而言之,position获得的是与父元素之间的偏移,而offset获得的则是和当前视窗口之间的偏移。
补充一点:如果元素被旋转过,那么position也好,offset也好,获得的是元素旋转后左上角一点的位置