2

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

这样做:

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

left 总是 0 。但初始位置不是 0 。如果我不使用 css() 方法设置绝对位置,left 将返回右左位置。关于如何解决这个问题的任何想法?

PS:在 answerng 之前,这个 bug 也发布在 jquery bug tracker 上。但是那里也没有人回答。仔细阅读我的问题。我不是在问如何获得这个位置,我是在问为什么我会为任何一组元素Jquery bug 链接获得相同的位置。在将它们设置为 absolute 之后,所有元素都获得相同的位置是正常的,而不是 before 。还是我错了?

4

2 回答 2

2

如果您试图获得它的 css 定义的左侧位置,请使用

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

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

var left = $element.offset().left;
于 2013-09-20T16:20:51.403 回答
0

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

文件:

http://api.jquery.com/offset

http://api.jquery.com/position

于 2013-09-20T16:21:32.190 回答