如何获得元素的正确位置?

时间:2011-08-17 09:18:15

标签: javascript jquery

我希望得到一个元素的正确位置。我已经尝试了attr('right'),并且我已阅读有关.position().right的API文档,该文档不存在(我相信)

http://jsfiddle.net/xavi3r/vcuq7/

是一个例子,我希望提醒正确的值。

6 个答案:

答案 0 :(得分:22)

您想要找到CSS right属性的值吗?

$('#foo').css('right');

简单的Javascript:

document.getElementById('foo').style.right;

但是,如果你想找到从元素右边缘到另一个元素右边缘的计算距离,那么你必须自己做,结合{{1} }和.position().left

答案 1 :(得分:12)

我认为这有效:

jQuery('#elem').offset().left + jQuery('#elem').width() 

小提琴: http://jsfiddle.net/adamovic/fcyL5sg0/

答案 2 :(得分:4)

$(document).width() - ($('#elem').offset().left + $('#elem').width());

应该为您提供元素右侧的空间,然后您可以将其设置为'右边的值。元素位置的属性;

答案 3 :(得分:4)

CSS值仅在通过样式或$ .css()设置时才有效。

但是如果你需要获得一个对象的正确位置,你应该使用javascript / jquery来做。

虽然有一些有效的解决方案,但重要的是要注意$ .fn.width()不会考虑填充和边框。因此,最好使用 outerWidth()

示例:

$(document).width() - ($('#elem').offset().left + $('#elem').outerWidth());

您甚至可以创建$ .fn函数来获取值:

$.fn.right = function() {
  return $(document).width() - (this.offset().left + this.outerWidth());
}

然后使用它:

$('#elem').right();

答案 4 :(得分:2)

您可以尝试.css

.css("right");

答案 5 :(得分:0)

如@avernet在评论中所指出的那样,相当于假设的.position()。right就是这样的表达式:

$('#foo').offsetParent().width() - ($('#foo').position().left + $('#foo').width());