Featherlight — это легковесная библиотека для создания модальных окон и галерей изображений на JavaScript. Галереи в Featherlight позволяют организовать несколько элементов в единое интерактивное пространство с навигацией между ними, поддержкой клавиш и автоматическим управлением контентом. Управление галереей осуществляется через параметры и опции, которые задаются при инициализации.
При создании галереи используется объект параметров, который расширяет стандартные опции Featherlight. Ключевые параметры:
gallery — включает галерею для
набора элементов. Если указано true или задан CSS-селектор,
все элементы, соответствующие селектору, будут объединены в одну
галерею.
$('.gallery-item').featherlightGallery({ gallery: true });openSpeed и
closeSpeed — скорость анимации открытия и
закрытия окна в миллисекундах. Поддерживается значение 0
для мгновенного отображения.
$.featherlightGallery.defaults.openSpeed = 300;
$.featherlightGallery.defaults.closeSpeed = 200;previousIcon и
nextIcon — HTML-символы или элементы для
кнопок навигации между изображениями. По умолчанию используются
стрелки.
$.featherlightGallery.defaults.previousIcon = '◀'; // стрелка влево
$.featherlightGallery.defaults.nextIcon = '▶'; // стрелка вправоfadeIn и
fadeOut — альтернативные параметры для
задания плавности переходов при открытии и закрытии модального окна. Они
могут использоваться вместо openSpeed и
closeSpeed для более гибкой анимации.
FeatherlightGallery поддерживает клавиатурную навигацию и навигацию через интерфейсные элементы. Основные методы и события:
next() — переход к следующему элементу
галереи.previous() — возврат к предыдущему
элементу.$.featherlightGallery.current() —
получение текущего активного элемента.События, которые можно использовать для настройки поведения:
beforeOpen — вызывается перед
открытием модального окна. Используется для подгрузки динамического
контента.afterClose — вызывается после
закрытия, полезно для очистки ресурсов или сброса состояния.FeatherlightGallery автоматически обрабатывает содержимое по CSS-селектору или переданному массиву. Поддерживаются типы контента:
.jpg, .png,
.gif и другие.div или других элементов.Пример инициализации галереи с HTML-контентом:
$('.gallery-item').featherlightGallery({
gallery: {
fadeIn: 300,
fadeOut: 200,
previousIcon: '<',
nextIcon: '>',
keyboard: true
},
beforeOpen: function(event){
console.log('Открытие элемента галереи', this);
}
});
FeatherlightGallery позволяет изменять дефолтные параметры на уровне всей страницы или конкретного вызова:
На уровне страницы:
$.featherlightGallery.defaults.nextIcon = '→';
$.featherlightGallery.defaults.previousIcon = '←';На уровне конкретного вызова:
$('.gallery-item').featherlightGallery({
gallery: true,
openSpeed: 400,
closeSpeed: 250
});Можно комбинировать параметры галереи с обычными опциями
Featherlight, такими как closeOnEsc,
closeOnClick, targetAttr.
FeatherlightGallery предоставляет гибкий механизм событий, что позволяет реализовать расширенные функции:
onStart — срабатывает при запуске
галереи, до отображения первого элемента.onEnd — вызывается после закрытия
последнего элемента.onNavigate — событие навигации между
элементами, передается индекс текущего и следующего элемента.Использование событий позволяет интегрировать галерею с внешними библиотеками, анимацией, аналитикой или динамическим подгружением контента.
data-featherlight или
src с динамической подгрузкой.FeatherlightGallery полностью совместим с jQuery и работает на всех современных браузерах. Архитектура плагина позволяет создавать собственные расширения, например, для:
Расширения создаются через переопределение методов плагина и добавление новых событий.
Галереи Featherlight предоставляют богатый набор опций для точной настройки визуального поведения, навигации и работы с контентом. Параметры галереи позволяют комбинировать анимацию, события и пользовательский контент для создания интерактивных и лёгких модальных окон.