如何在将元素设置为绝对位置之前获取位置()。左/顶?

时间:2013-09-20 16:18:04

标签: jquery

在将元素设置为绝对位置之前,我需要获取元素的当前位置(顶部,左侧)。

这样做:

var left = $(element).position().left;
$(element).css({'position':'absolute'});  

左边总是0。但最初的位置不是0。如果我不使用css()方法设置绝对位置,则左侧返回右侧左侧位置。有关如何解决此问题的任何想法?

P.S。 :在回答之前,这个bug也发布在jquery bug tracker上。但是没有人在那里回答。仔细阅读我的问题。我不是问如何获得这个位置,我问为什么我为什么能得到任何元素Jquery bug link的相同位置。在将它们设置为绝对值之后,为所有元素获取相同位置是正常的,而不是之前。或者我错了吗?

2 个答案:

答案 0 :(得分:2)

如果你试图将它的css定义为左侧位置,请使用

var left = parseInt($element.css("left"));

如果您尝试获取相对于文档的位置,请使用

var left = $element.offset().left;

答案 1 :(得分:0)

尝试使用.offset()而不是.position(),它会根据document元素而非HTML父级(具有非静态位置集)为您提供元素的坐标

文档:

http://api.jquery.com/offset

http://api.jquery.com/position