jQuery动态设置对象的位置?

时间:2013-03-07 22:49:25

标签: jquery css position css-position

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

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}

所以似乎位置:绝对正在重置顶部和左侧。

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

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

更新2: 好吧,正如我在下面评论的那样,只有当我尝试将position绝对值设置为each()循环内的对象时,问题似乎才会发生。我在下面有一个jsfiddle示例。

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

1 个答案:

答案 0 :(得分:1)

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

所以它现在看起来像这样

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

查看jsFiddle