Метод offset - получение текущих координат элемента

Метод offset позволяет получать позицию элемента относительно документа, в отличие от метода position, которые получает координаты относительно отступов родителя. Метод offset более полезен при позиционировании нового элемента поверх существующего для глобальных манипуляций, например, для реализации перетаскивания (англ. drag-and-drop). Своим результатом, метод возвращает объект, содержащий свойства top и left. Ошибки в вычислениях могут возникать, если пользователь меняет размеры страницы. Также метод не получает координаты скрытых элементов.

Синтаксис

Получить текущие координаты. В некоторых случаях полученные значения могут быть дробными:

$(селектор).offset();

Чтобы изменить координаты элемента, нужно передать объект, содержащий свойства top и left:

$(селектор).offset({top: 40, left: 40});

Также мы можем применить заданную функцию к каждому элементу в наборе. При этом первым параметром функция получит номер элемента в наборе, а вторым параметром - объект с координатами top и left. this внутри функции будет указывать на текущий элемент. Значения координат элемента поменяются на те, которые вернет функция:

$(селектор).width(function(номер в наборе, {текущие координаты}));

Пример

Давайте получим позицию дива (зеленого квадрата), с помощью метода offset, а затем, обратившись к ключам полученного объекта, выведем эту информацию:

<div id="result">click a square ...</div> <div id="test"></div> #test { position: absolute; top: 40px; left: 40px; width: 100px; height: 100px; background: green; color: white; margin-top: 10px; cursor: pointer; } $('*', document.body).click(function(event) { let offset = $(this).offset(); event.stopPropagation(); $('#result').text('Left: ' + offset.left + ', Top: ' + offset.top); });

Пример

Давайте поменяем координаты второго абзаца:

<p style="margin-left: 10px;">text1</p> <p style="margin-left: 10px;">text2</p> $('p').last().offset({top: 40, left: 60});

Смотрите также

  • метод position,
    который позволяет получать текущие координаты элемента
  • метод offsetParent,
    который позволяет получить ближайшего спозиционированного предка элемента
  • метод css,
    который позволяет получать и изменять CSS стили элемента



Чат с GPT Компилятор