Параметр closeTrigger является одной из ключевых
настроек при работе с Featherlight — лёгкой и минималистичной
библиотекой для создания модальных окон на JavaScript. Он определяет,
каким образом модальное окно может быть закрыто пользователем.
Управление этим поведением позволяет точно настроить взаимодействие с
пользователем и обеспечивает гибкость при реализации интерфейсов.
closeTrigger используется для указания события или
селектора, по которому Featherlight закроет текущее окно. По умолчанию
значение этого параметра — 'click', что означает закрытие
окна при клике на элемент с классом featherlight-close или
при клике на сам фон модального окна. Этот подход обеспечивает
стандартное поведение модальных окон и подходит для большинства
случаев.
Значение closeTrigger можно задать в виде CSS-селектора.
Это позволяет закрывать окно при клике на любые элементы, указанные в
селекторе. Например:
$.featherlight('#example', {
closeTrigger: '.custom-close-button'
});
В этом примере модальное окно будет закрываться при клике на элемент
с классом .custom-close-button, вместо стандартного
поведения, заданного по умолчанию. Такой способ полезен при создании
кастомных интерфейсов, где кнопки закрытия имеют нестандартный
дизайн.
Помимо селекторов, closeTrigger может принимать строку с
названием события. Featherlight поддерживает любые стандартные события
DOM, такие как 'click', 'dblclick',
'mouseover' и так далее. Пример использования:
$.featherlight('#example', {
closeTrigger: 'dblclick'
});
Теперь окно будет закрываться при двойном клике на фон модального
окна или на элементы с классом featherlight-close.
Для более точного управления можно комбинировать селектор и событие, указывая их через пробел:
$.featherlight('#example', {
closeTrigger: 'click .custom-close-button'
});
Это означает, что окно будет закрываться только при клике именно на
элементы с классом .custom-close-button. Такой подход
особенно полезен при наличии сложной разметки внутри модального окна,
где обычный клик на фон не должен приводить к его закрытию.
$(document).on('keydown', function(e) {
if (e.key === "Escape") {
$.featherlight.close();
}
});
$.featherlight('#example', {
closeTrigger: 'click #external-close'
});
closeTriggercloseTrigger задано некорректно или
элемент не существует на странице, Featherlight будет использовать
стандартное поведение закрытия.closeTrigger влияет на удобство использования и
доступность интерфейса, поэтому рекомендуется использовать семантически
понятные элементы для закрытия окна.Пример полной конфигурации с closeTrigger в контексте
инициализации окна:
$.featherlight('#example', {
closeTrigger: 'click .custom-close-button',
openSpeed: 300,
closeSpeed: 200,
persistent: false
});
В данном примере closeTrigger интегрирован с другими
опциями библиотеки: скорость открытия и закрытия
(openSpeed, closeSpeed) и параметр
persistent, определяющий, можно ли закрывать окно кликом
вне контента.
closeTrigger является мощным инструментом для тонкой
настройки поведения модальных окон Featherlight, позволяя создавать как
стандартные, так и полностью кастомизированные интерфейсы с удобной
навигацией и контролем взаимодействия пользователя.