Featherlight — лёгкая библиотека для создания модальных окон на JavaScript. Один из ключевых способов интеграции — использование data-атрибутов. Этот подход позволяет минимизировать вмешательство в код и реализовать модальные окна с минимальной конфигурацией, сохраняя чистоту HTML.
Featherlight автоматически обнаруживает элементы с атрибутом
data-featherlight и привязывает к ним функциональность
модального окна. Значение атрибута определяет контент,
который будет отображён внутри окна:
<a href="example.html" data-featherlight="iframe">Открыть страницу в модальном окне</a>
<a href="#inline-content" data-featherlight="#inline-content">Открыть скрытый блок</a>
<a href="image.jpg" data-featherlight="image">Просмотреть изображение</a>
Ключевые моменты:
data-featherlight указывает тип содержимого:
"image", "iframe", "ajax" или
селектор для inline-контента.display: none;).Помимо выбора типа содержимого, можно конфигурировать поведение модального окна через дополнительные data-атрибуты:
<a href="example.html"
data-featherlight="iframe"
data-featherlight-iframe-width="800"
data-featherlight-iframe-height="600"
data-featherlight-close-on-click="background">
Открыть iframe
</a>
Расшифровка основных параметров:
data-featherlight-iframe-width и
data-featherlight-iframe-height — размеры iframe.data-featherlight-close-on-click — поведение при клике
на фон: "background", "anywhere" или
"false".data-featherlight-variant — добавляет класс к
модальному окну для стилизации.data-featherlight-loading — текст или HTML,
отображаемый во время загрузки контента.Featherlight позволяет использовать inline-контент, храня его в скрытых блоках на странице:
<div id="popup-form" style="display:none;">
<form>
<label>Имя: <input type="text"></label>
<button type="submit">Отправить</button>
</form>
</div>
<a href="#popup-form" data-featherlight="#popup-form">Открыть форму</a>
В этом примере при клике на ссылку содержимое блока
#popup-form будет клонировано и отображено в модальном
окне. Featherlight автоматически обрабатывает скрытие блока после
закрытия окна.
Featherlight поддерживает события, которые можно использовать для управления поведением модального окна через data-атрибуты:
<a href="#popup"
data-featherlight="#popup"
data-featherlight-opened="console.log('Модальное окно открыто')"
data-featherlight-closed="console.log('Модальное окно закрыто')">
Открыть popup
</a>
Доступные события:
beforeOpen — перед открытием окна.afterOpen — сразу после открытия.beforeClose — перед закрытием.afterClose — после закрытия.Каждое событие можно привязать через JS или через data-атрибут, что позволяет минимизировать использование скриптов для простых действий.
data-featherlight-gallery.
Навигация между элементами осуществляется автоматически.data-featherlight-variant, можно
подключать CSS-анимации или менять оформление модального окна.data-featherlight="ajax" позволяет
подгружать HTML без перезагрузки страницы.<a href="/remote-content.html" data-featherlight="ajax">Загрузить контент через AJAX</a>
Преимущества:
Ограничения:
Инициализация через data-атрибуты является одной из самых чистых и декларативных стратегий использования Featherlight, сохраняя HTML удобным для чтения и поддержки.