Интерактивные popup с автоматическим выравниванием и анимацией
Запись от mr_dramm размещена 09.02.2025 в 23:00
Показов 1480
Комментарии 0
Метки animation, html, javascript, reflow
|
Рекомендуется статья к прочтению: 1. Анимация в браузерах и как с ней работать Сергей Чикуёнок (VK) Функциональные фичи: - автоматическое вертикальное выравнивание при добавлении и удалении popup - автоматическое удаление popup через указанные промежуток времени - анимация появления удаления выравнивания - остановка анимации и воспроизведение при наведении курсора на popup Кодовые Фичи: - использование структуры List для хранения popup, позволяет меньше вызывать querySelectorAll - минимизируем количество reflow, разделяя получение размеров (getBoundingClientRect()) и установку transform, подробнее в статье 1 раздел "Неочевидные моменты в работе Layout/reflow" - запуск перерисовки с requestAnimationFrame в createPopup и для оптимизации отрисовки за один кадр в verticalAlignPopups - использование transform вместо position дает преимущества, подробнее в статье 1 раздел "Рендеринг и анимация в отдельном потоке" Базовый пример Демо Код Кликните здесь для просмотра всего текста
Пример с использованием template Демо Код Кликните здесь для просмотра всего текста
было
Пример с использованием web components Демо Код Кликните здесь для просмотра всего текста
Shadow DOM инкапсулирует свою разметку и стили, поэтому стили, определённые в <head>, не применяются к элементам внутри теневого дерева. Один из вариантов устанавливать стили для Web components это добавить их в template и при создании компонента записать содержимое template в Shadow DOM.
- Создаем класс, который наследуется от HTMLElement, в котором будет инициализация shadowDom и логика управления компонентом- Регистрация компонента customElements.define- Добавление компонента в DOM document.createElement('popup-element') и document.body.appendChild(popup)
Служебный класс List Кликните здесь для просмотра всего текста
| |||||||||||||||||||||||||||||||||||||||||||||
Метки animation, html, javascript, reflow
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии


