Я пытаюсь отобразить узел рядом с другим (поверх содержимого) с помощью Javascript. Я не могу изменить структуру документа для этого узла, и мне нужно вставить новый узел под одним и тем же родителем. Я хотел бы использовать позицию: абсолютная позиционировать новый узел, но мне кажется, трудно найти позицию опорного узла. Использование getBoundingClientRect() на ссылочном узле не работает, потому что узел может находиться внутри предка с позицией: relative или position: absolute, а getBoundingClientRect() возвращает позицию относительно документа, которая не может использоваться в качестве координат с позицией CSS : абсолютный.Получить абсолютное положение узла CSS в Javascript
Нужно ли мне прокручивать предков, чтобы найти первую позицию: абсолютную или позицию: относительную, чтобы найти абсолютную позицию CSS, или есть более простой способ получить эту информацию?
Примечание: Я ищу ответ в чистом Javascript.
Обновление: Другими словами, я ищу позицию верхнего/левого пикселя, элемент должен отображаться в том же месте, когда его положение CSS изменяется на «абсолютное». offsetTop/offsetLeft не является ответом, потому что элемент может находиться внутри таблицы, и в этом случае offsetParent является ячейкой таблицы.
Возможный дубликат [Javascript: получить позицию/смещение элемента относительно родительского контейнера?] (Http://stackoverflow.com/questions/11634770/javascript-get-position-offset-of-element-relative-to -a-parent-container) - принятые ответы детали чистых свойств javascript для этого –
Я не вижу, как связаны эти вопросы: я не ищу позицию относительно родителя. – Damien
Я добавил пример, чтобы продемонстрировать, как использовать 'offsetLeft' и' offsetTop'.Возможно, название этого вопроса вводит в заблуждение, но решение одинаков - вам нужна позиция относительно «offsetParent», которая на самом деле не может быть прямым родителем - она относится к ближайшему предку с абсолютным или относительным позиционированием. –