faxenoff
@faxenoff
UX designer

Как вставить top-fixed блок на страницу, где такой блок уже есть (сдвинув его)?

Привет!
Стоит задача сделать extension, который будет размещать свой блок поверх всех просматриваемых сайтов (отодвигая их контент вниз на размер блока).

Оказалось, что родные блоки с position:fixed позиционируются относительно всего окна и перекрывают мой блок.

Предполагаемые направления решения:
  1. Сканировать DOM на предмет объектов с position:fixed и увеличивать в них top на требуемую величину.
  2. Каким-то образом засовывать всё родное содержимое сайтов в iframe, который не будет мешать моему блоку.


Проблемы первого решения:
  • Надо ждать полной загрузки страницы.
  • Весьма вероятен визуальный "прыжок".
  • Если какой-то скрипт завязан на координаты от верха и контролирует поведение родных fixed-элементов, то ему будет грустно.


Проблемы второго решения:
  • Не знаю как это делается, лишь предполагаю.
  • Возможен ли в таком варианте прямой доступ к DOM страниц сайтов?
  • Некоторые сайты детектируют свою загрузку в iframe и что-то предпринимают по этому поводу.


Какой вариант посоветуете и как решать его проблемы?
Может есть уже работающее решение (для изучения)? Для рекламно-спамерских целей часто используется похожий inject своих блоков, но я так на вскидку не могу придумать как их найти и изучить.

p.s. Extension нужен для проведения онлайн-тестирования, не подумайте плохого! 8-)
  • Вопрос задан
  • 2221 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект