好吧,我有一个奇怪的难题。当我得到一个元素的位置并输出它时,我实际上得到了对象的真实坐标。如下所示:

var el = $('#element');

var position = el.position();

console.log(position);


给定的输出类似于:

Object { top=0, left=120}


效果很好,但是现在如果将对象设置为position:absolute,则会得到一个奇怪的输出。下面的代码是我在做什么的示例。

var el = $('#element');

var position = el.position();

el.css({
    top: position.top + 'px',
    left: position.left + 'px',
    position: 'absolute'
});

console.log(position);


现在我得到的输出类似于下面的输出。

Object { top=0, left=0}


因此,似乎position:absolute正在重置顶部和左侧。

我的问题是...如何通过jQuery将对象设置为position:absolute来设置对象的左侧和顶部位置?

http://jsfiddle.net/sbe3C/2/

更新2:
好的,正如我在下面评论的那样,仅当我尝试在each()循环中将绝对位置设置为对象时,才会出现此问题。我在下面有一个jsfiddle示例。

http://jsfiddle.net/geocalleo/atNFz/

最佳答案

我想到了!问题是我需要从底部到顶部方向迭代这些项目。我从另一个question on StackOverflow得到了答案。

所以现在看起来像这样

$($('body > div').get().reverse()).each


检出jsFiddle

关于jquery - jQuery动态设置对象的位置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15283331/

10-17 03:00