Featherlight — минималистичная lightbox-библиотека на JavaScript, изначально ориентированная на показ изображений и HTML-контента. При этом она хорошо подходит и для работы с видео, размещённым на сторонних платформах: YouTube, Vimeo и других сервисах, предоставляющих iframe-встраивание. Основная идея заключается в том, что Featherlight не «знает» о видео напрямую — она отображает HTML, а управление воспроизведением и параметрами остаётся за iframe-плеером.
Featherlight отображает содержимое, переданное через:
data-featherlighthref (для ссылок)Для внешних видеоплатформ используется iframe, который подгружается внутрь lightbox-контейнера. Важный момент: Featherlight не управляет жизненным циклом видео, поэтому при закрытии окна iframe просто удаляется из DOM, что автоматически останавливает воспроизведение.
Для работы с видео требуется стандартное подключение Featherlight и jQuery:
<link rel="stylesheet" href="featherlight.min.css">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="featherlight.min.js"></script>
Никаких дополнительных плагинов для видео не требуется.
Самый простой способ — использовать iframe с embed-URL YouTube.
<a href="#" data-featherlight="
<iframe
width='800'
height='450'
src='https://www.youtube.com/embed/VIDEO_ID'
frameborder='0'
allow='autoplay; encrypted-media'
allowfullscreen>
</iframe>
">
Видео с YouTube
</a>
Ключевые моменты:
/embed/, а не стандартный URL.data-featherlight.YouTube поддерживает передачу параметров через query-string:
src="https://www.youtube.com/embed/VIDEO_ID?autoplay=1&rel=0"
Часто используемые параметры:
autoplay=1 — автоматический стартrel=0 — отключение рекомендацийcontrols=0 — скрытие элементов управленияmute=1 — обязательный параметр для автозапуска в
современных браузерахПример с автозапуском:
<a href="#" data-featherlight="
<iframe
width='800'
height='450'
src='https://www.youtube.com/embed/VIDEO_ID?autoplay=1&mute=1'
frameborder='0'
allow='autoplay; encrypted-media'
allowfullscreen>
</iframe>
">
Видео с автозапуском
</a>
Vimeo также использует iframe, но с другим форматом URL:
src="https://player.vimeo.com/video/VIDEO_ID"
Пример:
<a href="#" data-featherlight="
<iframe
src='https://player.vimeo.com/video/VIDEO_ID?autoplay=1'
width='800'
height='450'
frameborder='0'
allow='autoplay; fullscreen'
allowfullscreen>
</iframe>
">
Видео с Vimeo
</a>
Vimeo предоставляет дополнительные параметры:
loop=1title=0byline=0portrait=0Они позволяют убрать служебную информацию и сделать видео визуально «чистым».
При необходимости динамически подставлять видео или управлять логикой открытия используется Jav * aScript:
$.featherlight({
html: `
<iframe
width="800"
height="450"
src="https://www.youtube.com/embed/VIDEO_ID?autoplay=1&mute=1"
frameborder="0"
allow="autoplay; encrypted-media"
allowfullscreen>
</iframe>
`
});
Этот подход удобен при работе с галереями, AJAX-контентом или сложной логикой интерфейса.
По умолчанию размеры iframe фиксированы. Для адаптивного поведения используется CSS-обёртка с сохранением пропорций:
<div class="video-wrapper">
<iframe src="..."></iframe>
</div>
.video-wrapper {
position: relative;
padding-bottom: 56.25%; /* 16:9 */
height: 0;
}
.video-wrapper iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
Этот контейнер передаётся в Featherlight вместо чистого iframe. В результате видео масштабируется под размер окна, не нарушая пропорций.
Featherlight автоматически подстраивается под содержимое, но для видео часто задают ограничения:
.featherlight-content {
max-width: 90vw;
max-height: 90vh;
}
Это предотвращает выход видео за пределы экрана на небольших устройствах.
Дополнительных действий не требуется: при закрытии lightbox iframe удаляется, и плеер прекращает воспроизведение. Если используется кастомный контейнер или повторное использование DOM-элементов, рекомендуется очищать содержимое в колбэке:
$(document).on('featherlight:afterClose', function(event) {
$('.video-wrapper').remove();
});
Передача HTML через data-featherlight требует
аккуратности:
Featherlight не выполняет фильтрацию HTML, ответственность за безопасность полностью лежит на разработчике.
Любая платформа, предоставляющая iframe-встраивание, работает по тому же принципу:
Достаточно корректного embed-URL и разрешений allow.
Featherlight в контексте видео выступает как универсальный контейнер, не накладывая ограничений на источник и формат, что делает его удобным инструментом для интеграции медиаконтента из внешних сервисов.