Featherlight — это легковесная библиотека для создания модальных окон на основе jQuery. Основная цель — простое открытие и отображение различных типов контента: HTML, изображений, AJAX-запросов и iFrame. Она минимальна по размеру, но предоставляет гибкий API для расширения функционала.
Для работы с Featherlight требуется подключение jQuery и самого скрипта Featherlight. Минимальный пример подключения:
После подключения можно инициировать модальное окно на любом элементе
с помощью метода .featherlight().
Featherlight позволяет открывать модальные окна с заранее определённым HTML-контентом. Для этого можно использовать как встроенные элементы на странице, так и создавать контент динамически.
Inline-контент хранится внутри скрытых блоков на странице. Пример:
Открыть окно
При клике на ссылку Featherlight автоматически извлекает содержимое
блока с идентификатором #myContent и отображает его в
модальном окне. Скрытый блок остаётся на странице, что позволяет
использовать его повторно.
Можно создавать модальные окна с контентом, генерируемым на лету. Это удобно для вставки данных из Jav * aScript:
$.featherlight('Динамический контент
Контент создается с помощью JavaScript
');
Featherlight принимает любую строку с HTML, формирует из неё модальное окно и вставляет в DOM. Контент можно полностью кастомизировать, добавляя классы, стили и интерактивные элементы.
Featherlight предоставляет возможность тонкой настройки через объект опций. Основные параметры для работы с HTML-контентом:
target — селектор или HTML-код,
который будет отображён в модальном окне.afterOpen — функция, вызываемая после
открытия окна, полезно для инициализации внутренних скриптов или
анимаций.afterClose — вызывается после закрытия
окна, позволяет очищать динамически созданный контент.closeOnClick — управление закрытием
окна при клике вне области контента
(true/false).Пример с конфигурацией:
$.featherlight('Контент с кастомными параметрами
', {
closeOnClick: 'background',
afterOpen: function(event){
console.log('Модальное окно открыто');
},
afterClose: function(event){
console.log('Модальное окно закрыто');
}
});
Featherlight позволяет добавлять собственные CSS-классы к модальному окну и его содержимому. Это делает возможным создание уникального оформления:
$.featherlight('Контент с уникальными стилями', {
variant: 'myCustomClass'
});
В CSS можно определить стили для класса
.featherlight.myCustomClass, например:
.featherlight.myCustomClass {
background-color: #f0f0f0;
border-radius: 10px;
padding: 20px;
}
Для интерактивного HTML-контента важно уметь работать с событиями
элементов внутри окна. Featherlight обеспечивает доступ к DOM внутри
модального окна через свойство
$.featherlight.current():
$.featherlight('', {
afterOpen: function(){
this.$content.find('#btnClick').on('click', function(){
alert('Кнопка внутри модального окна нажата');
});
}
});
Свойство $content содержит jQuery-объект с текущим
контентом, что упрощает работу с динамическими элементами.