好吧,我有一个奇怪的困境。当我得到一个元素的位置并输出时,我实际上得到了这个物体的真实坐标。像下面这样:
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 时设置对象的左侧和顶部位置?
更新 2: 好的,正如我在下面评论的那样,这个问题似乎只在我尝试将位置绝对设置为 each() 循环内的对象时才会发生。我在下面有一个 jsfiddle 示例。
最佳答案
我想通了!问题是我需要从下到上迭代元素。我从另一个question on StackOverflow得到了答案.
现在看起来像这样
$($('body > div').get().reverse()).each
查看 jsFiddle .
关于jQuery动态设置对象的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15283331/