Featherlight — лёгкая JavaScript-библиотека для создания модальных окон (lightbox). Она не требует сложной инициализации и хорошо подходит для встраивания мультимедийного контента, включая видео с YouTube.
Для работы необходимы jQuery и файлы самой библиотеки:
<link rel="stylesheet" href="featherlight.min.css">
<script src="jquery.min.js"></script>
<script src="featherlight.min.js"></script>
Featherlight автоматически инициализируется на элементах с атрибутом
data-featherlight. Это позволяет обойтись без явного
JavaScript-кода в простых сценариях.
YouTube-видео в Featherlight загружается через iframe. Lightbox не управляет плеером напрямую, а лишь создаёт контейнер для отображения iframe-контента.
Базовая разметка:
<a href="https://www.youtube.com/embed/VIDEO_ID"
data-featherlight="iframe">
Смотреть видео
</a>
Ключевые моменты:
iframe сообщает Featherlight, что контент
должен быть загружен во фрейм;По умолчанию Featherlight задаёт минимальные размеры iframe, которые
редко подходят для видео. Размеры можно определить через атрибут
data-featherlight-iframe-*.
Пример с фиксированными размерами:
<a href="https://www.youtube.com/embed/VIDEO_ID"
data-featherlight="iframe"
data-featherlight-iframe-width="960"
data-featherlight-iframe-height="540">
Видео в HD
</a>
Поддерживаемые параметры:
data-featherlight-iframe-widthdata-featherlight-iframe-heightdata-featherlight-iframe-frameborderdata-featherlight-iframe-allowfullscreenЭто позволяет полностью контролировать внешний вид видеоплеера.
Дополнительные параметры YouTube передаются через строку запроса embed-URL.
Пример с автозапуском и отключением рекомендаций:
<a href="https://www.youtube.com/embed/VIDEO_ID?autoplay=1&rel=0"
data-featherlight="iframe"
data-featherlight-iframe-width="800"
data-featherlight-iframe-height="450">
Воспроизвести
</a>
Часто используемые параметры:
autoplay=1 — автоматический старт видеоcontrols=0 — скрытие панели управленияmute=1 — запуск без звукаrel=0 — отключение похожих видеоFeatherlight не фильтрует параметры, поэтому поддерживается вся официальная спецификация YouTube Player API.
Для сложных сценариев используется программный вызов:
$.featherlight({
iframe: 'https://www.youtube.com/embed/VIDEO_ID?autoplay=1',
iframeWidth: 1024,
iframeHeight: 576
});
Такой подход удобен, если:
Все iframe-параметры задаются напрямую в объекте конфигурации.
При закрытии lightbox iframe удаляется из DOM, что автоматически останавливает воспроизведение. Это важное преимущество Featherlight по сравнению с библиотеками, которые лишь скрывают контейнер.
Механизм работы:
close();Дополнительных обработчиков для остановки видео не требуется.
Featherlight предоставляет события, позволяющие управлять поведением модального окна с видео.
Пример:
$(document).on('featherlight:opened', function () {
console.log('Видео открыто');
});
$(document).on('featherlight:closed', function () {
console.log('Видео закрыто');
});
Практическое применение:
Для адаптивного отображения рекомендуется не фиксировать размеры, а использовать CSS.
Пример:
.featherlight-iframe .featherlight-content {
width: 90vw;
height: 50vw;
max-width: 960px;
max-height: 540px;
}
Такой подход:
Featherlight позволяет переопределять стили без изменения исходных файлов.
Основные классы:
.featherlight.featherlight-content.featherlight-close-iconПример изменения фона:
.featherlight {
background: rgba(0, 0, 0, 0.85);
}
Видео при этом остаётся неизменным, так как iframe изолирован от стилей родителя.
Для коллекций видео достаточно менять href или параметр
iframe:
<a data-video="VIDEO_1" class="video-link">Видео 1</a>
<a data-video="VIDEO_2" class="video-link">Видео 2</a>
$('.video-link').on('click', function () {
$.featherlight({
iframe: 'https://www.youtube.com/embed/' + $(this).data('video'),
iframeWidth: 800,
iframeHeight: 450
});
});
Это решение масштабируется без дублирования разметки и легко интегрируется с шаблонами.
Несмотря на это, Featherlight остаётся одним из самых простых и надёжных решений для показа YouTube-видео в модальных окнах без избыточной архитектуры и зависимостей.