Выравнивание DOM-элементов [задача на красивый код]

10 000 руб. за проект • безналичный расчёт, электронные деньги
17 декабря 2018, 16:37 • 7 откликов • 123 просмотра
Задача: написать менеджер выравнивания плавающих элементов (тулбары, подсказки и т. д.).

Т. е. хотим, чтобы какой-то div отображался всегда сверху слева от другого div'а - создаем соотвествующий FloatManager, который умеет выравнивать один элемент относительно другого с заданными параметрами.

Далее нужно реализовать ещё пару нюансов: в зависимости от настроек наша плавающая панель может отображаться с противоположной стороны (снизу, если нет места сверху, например), а также двигаться в зависимости от скролла, чтобы всегда быть видимой. И ещё пара более простых FloatManager'ов (относительно границ экрана, например).

Более понятно будет в ТЗ. См. одну из иллюстраций.

Пишем на TypeScript, без внешних зависимостей (без npm пакетов), кроссброузерно (кроме древних IE). К библиотеке также прилагаем тестовое демо-приложение, которое будет показывать правильность работы во всех вариациях параметров.
После завершения напишем React-обертку (за доплату) - опционально, если вы знаете React.

У меня уже есть реализация, собранная мною на коленке впопыхах, но слегка глючная и с некрасивым кодом. Ваша задача - создать небольшое, но произведение искуства :)
Красивое API для вашего будущего красивого кода уже написано мною в ts-файле.
Файлы