Featherlight — это лёгкая библиотека для создания модальных окон в
JavaScript, ориентированная на простоту и гибкость. Одним из ключевых
инструментов управления поведением модального окна является параметр
openTrigger. Он определяет, какое событие
инициирует открытие окна, что позволяет точно контролировать
пользовательский интерфейс и взаимодействие с элементами страницы.
openTriggerПараметр openTrigger задаёт тип события DOM, которое
будет вызывать открытие модального окна Featherlight. По умолчанию это
событие click, что означает открытие окна при нажатии на
элемент. Значение может быть любым событием, поддерживаемым DOM:
mouseenter, focus, dblclick и
др.
Пример базового использования:
$('.open-modal').featherlight({
openTrigger: 'mouseenter'
});
В данном случае модальное окно откроется, когда пользователь наведёт
курсор на элемент с классом .open-modal.
Ключевые моменты:
openTrigger может быть строкой,
содержащей одно событие ('click') или несколько через
пробел ('mouseenter focus').click.Featherlight позволяет создавать окна для динамически добавляемых элементов. В таких случаях важно правильно указывать селектор и триггер, чтобы модальное окно корректно открывалось при новых элементах.
Пример:
$(document).on('click', '.dynamic-button', function() {
$.featherlight('<p>Динамический контент</p>', {
openTrigger: 'click'
});
});
Здесь каждый новый элемент с классом .dynamic-button при
клике будет открывать модальное окно с содержимым.
openTrigger поддерживает одновременное использование
нескольких событий. Это удобно, если требуется открыть модальное окно
при разных действиях пользователя.
$('.multi-trigger').featherlight({
openTrigger: 'mouseenter focus'
});
mouseenter) откроет окно.focus) также откроет
окно.Такой подход улучшает доступность интерфейса и позволяет поддерживать различные сценарии взаимодействия.
closeTriggerВажно не путать openTrigger с
closeTrigger.
openTrigger определяет событие для
открытия окна.closeTrigger определяет событие для
закрытия окна, например:$('.modal-content').featherlight({
openTrigger: 'click',
closeTrigger: 'mouseleave'
});
В этом примере окно откроется при клике и закроется, когда курсор покинет область модального окна.
openTrigger часто используется вместе с другими
настройками:
selector — позволяет ограничить элементы, на которых
срабатывает триггер.persist — при значении true сохраняет
содержимое окна между открытиями.afterOpen — функция обратного вызова, которая
выполняется после срабатывания триггера и открытия окна.Пример:
$('.custom-trigger').featherlight({
openTrigger: 'dblclick',
persist: true,
afterOpen: function(event){
console.log('Модальное окно открыто двойным кликом');
}
});
Здесь окно открывается при двойном клике, его содержимое сохраняется между открытиями, а после открытия выполняется логирование в консоль.
openTrigger срабатывает только на элементах, на
которых инициализирован Featherlight. Для динамически
добавляемых элементов необходимо использовать делегирование событий
(.on()).touchstart или tap, так как
mouseenter и hover могут не работать.$('.hover-modal').featherlight({
openTrigger: 'mouseenter',
closeTrigger: 'mouseleave'
});
$('.interactive-modal').featherlight({
openTrigger: 'click focus',
afterOpen: function(event){
alert('Модальное окно открыто!');
}
});
$('.ajax-button').featherlight({
openTrigger: 'click',
ajax: 'https://example.com/content.html'
});
Окно открывается по клику и загружает содержимое с сервера.
Параметр openTrigger является одним из самых
гибких инструментов Featherlight, позволяя точно настроить,
когда и каким образом пользовательский интерфейс реагирует на действия
пользователя. Его правильное использование обеспечивает удобство,
доступность и расширяемость модальных окон.