jquery - 在将元素设置为绝对位置之前如何获取元素的position().left/top?

标签 jquery

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

这样做:

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

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

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

最佳答案

如果你想获取它的 css 定义的左侧位置,请使用

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

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

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

关于jquery - 在将元素设置为绝对位置之前如何获取元素的position().left/top?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18921360/

相关文章:

javascript - jQuery 按钮一次验证表单的一部分

javascript - 是否有可能看到 <canvas> 是如何被操纵的?

javascript - Ajax 调用使页面崩溃

javascript - 如何使用 jquery 添加包含 AngularJS 表达式的 ajax 加载内容

javascript - 如何将 JSON 对象从 Java/Prime Faces 传递到 GOJS javascript 文件

jquery - 单击按钮在 iDevices 上不起作用

php - 使用 jquery taggd 标记/标记图像

javascript - 对 JSON 数据运行 jQuery

javascript - Jquery slider ;使容器透明,如何隐藏图像溢出?

&lt;script&gt; 标签内的 JavaScript 代码