jQuery: разница между позицией () и смещением()
в чем разница между position() и offset()? Я попытался сделать следующее в событии щелчка:
console.info($(this).position(), $(this).offset());
и они, кажется, возвращаются точно так же... (Щелкнутый элемент находится в ячейке таблицы в таблице)
3 ответа:
Это зависит от контекста элемент.
positionвозвращает позицию относительно смещения родителя иoffsetтут же относительно документа. Очевидно, что если документ является родителем смещения, что часто бывает, они будут идентичны.однако, если у вас есть макет, как это:
<div style="position: absolute; top: 200; left: 200;"> <div id="sub"></div> </div>тут
offsetна sub будет 200:200, ноpositionбудет 0:0.
на .offset () метод позволяет нам получить текущее положение элемента относительно документа. Сравните это с .позиция (), который получает текущее положение относительно смещенного родителя. При размещении нового элемента поверх существующего для глобальных манипуляций (в частности, для реализации перетаскивания), .смещение () является более полезным.
источник: http://api.jquery.com/offset/