Как получить правильную позицию Элемента?

Я хочу получить правильное положение элемента. Я пробовал attr('right'), и я прочитал документ API относительно .position().right, который не существует (я считаю).

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

Я хотел бы указать правильное значение для.

Ответы

Ответ 1

Вы хотите найти значение свойства CSS right?

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

В простом Javascript:

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

Но если вы хотите найти вычисленное расстояние от правого края элемента до правого края другого, тогда вам придется сделать это самостоятельно, объединив .position().left и .offsetWidth

Ответ 3

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

должно предоставить вам пространство с правой стороны элемента, которое затем можно установить как значение для свойства "right" позиции элемента;

Ответ 4

вы можете попробовать .css

.css("right");

Ответ 5

Значение 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();

Ответ 6

Как отмечено @avernet в комментариях, эквивалент гипотетического .position(). right будет выглядеть следующим образом:

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