Featherlight — это минималистичная библиотека для создания модальных окон в веб-приложениях на JavaScript и jQuery. Она обеспечивает легкий способ отображения изображений, HTML-контента, видео и других медиа-ресурсов поверх основной страницы без перегрузки кода и CSS. Featherlight ориентирован на простоту и гибкость, позволяя разработчику полностью контролировать внешний вид и поведение модальных окон.
Для использования Featherlight достаточно подключить jQuery, затем подключить сам скрипт Featherlight и его стили:
<link href="featherlight.min.css" rel="stylesheet">
<script src="jquery.min.js"></script>
<script src="featherlight.min.js"></script>
Инициализация производится через простую конструкцию:
$('.open-lightbox').featherlight();
Эта запись привязывает модальное окно к элементу с классом
.open-lightbox. Featherlight автоматически берет содержимое
из атрибута href элемента или из HTML-контейнера,
указанного через селектор.
Featherlight поддерживает несколько типов медиа:
<a> с ссылкой на файл:<a href="image.jpg" data-featherlight="image">Посмотреть изображение</a>
Featherlight автоматически подстроит размер окна под изображение, добавит затемнение фона и анимацию появления.
<a href="#info" data-featherlight="inline">Подробнее</a>
<div id="info" style="display:none;">
<h2>Заголовок</h2>
<p>Текстовый блок с описанием.</p>
</div>
<a href="https://www.youtube.com/embed/abc123" data-featherlight="iframe">Смотреть видео</a>
Featherlight поддерживает автоматическое масштабирование видео по размеру окна и обеспечивает возможность закрытия модального окна кликом вне области контента.
Featherlight позволяет управлять множеством опций:
variant — добавление CSS-класса для изменения стиля
окна.closeOnClick — определяет поведение при клике на фон
(true, false или
"anywhere").beforeOpen, afterOpen,
beforeClose, afterClose — хуки для выполнения
кастомного JavaScript перед или после открытия/закрытия.Пример настройки с пользовательскими хуками:
$('.open-lightbox').featherlight({
variant: 'custom-lightbox',
closeOnClick: 'anywhere',
beforeOpen: function(event){
console.log('Модальное окно собирается открыться');
},
afterClose: function(event){
console.log('Модальное окно закрыто');
}
});
Featherlight поддерживает группировку элементов в
галереи. Для этого используется атрибут
data-featherlight-gallery:
<a href="img1.jpg" data-featherlight="image" data-featherlight-gallery="gallery1">Изображение 1</a>
<a href="img2.jpg" data-featherlight="image" data-featherlight-gallery="gallery1">Изображение 2</a>
При открытии одного изображения появляется стрелочная навигация, позволяющая перелистывать все элементы галереи. Галерея автоматически учитывает размер экрана и подстраивает размеры изображений.
Featherlight имеет систему расширений. Наиболее часто используются:
Пример использования расширения для iframe с динамическим размером:
$.featherlight.defaults.type = 'iframe';
$.featherlight.defaults.iframeWidth = 800;
$.featherlight.defaults.iframeHeight = 600;
Featherlight отличается легковесностью, но при работе с большим количеством медиа важно учитывать:
$.featherlight.prototype.afterClose = function(){
this.$content.empty();
};
CSS-классы Featherlight позволяют полностью контролировать оформление:
.featherlight — основной контейнер модального
окна..featherlight-content — область с контентом..featherlight-close — кнопка закрытия..featherlight-overlay — затемненный фон.Применение собственного стиля через вариант:
$('.open-lightbox').featherlight({ variant: 'my-lightbox' });
И CSS:
.featherlight.my-lightbox {
background-color: #111;
border-radius: 12px;
}
.featherlight.my-lightbox .featherlight-content {
padding: 20px;
}
Featherlight предоставляет события на каждом этапе жизни окна, что делает интеграцию с динамическим контентом удобной:
$(document).on('featherlight:open', function(event){
console.log('Открытие модального окна');
});
$(document).on('featherlight:close', function(event){
console.log('Закрытие модального окна');
});
Эти события позволяют синхронизировать открытие модальных окон с аналитикой, анимациями и внешними библиотеками.
Featherlight сочетает минимализм, простоту и гибкость. Он поддерживает работу с изображениями, видео и HTML, позволяет создавать галереи, подключать хуки и расширения, а также полностью настраивать стиль. Основные принципы работы: подключение скриптов, инициализация через селекторы, использование встроенных и кастомных опций, управление событиями и оптимизация контента. Это делает Featherlight удобным инструментом для легких и функциональных медиа-модальных окон в современных веб-проектах.