Свойство offsetParent в JavaScript
Свойство offsetParent содержит ближайшего родителя, относительно которого происходит позиционирование элемента. Это будет либо ближайший родитель, у которого CSS свойство position не равно static, либо тег body, если родителя с таким позиционированием нет.
Синтаксис
элемент.offsetParent
Пример
Давайте найдем родительский элемент со свойством position, отличными от static:
<div id="parent3">
<div id="parent2" style="position: relative">
<div id="parent1">
<p id="elem">text</p>
</div>
</div>
</div>
let elem = document.querySelector('#elem');
console.log(elem.offsetParent.id); // parent2
Пример
Если у родительских элементов нет позиционирования, то offsetParent содержит body:
<div>
<p id="elem">text</p>
</div>
let elem = document.querySelector('#elem');
console.log(elem.offsetParent.tagName); // BODY