Featherlight — это минималистичная и лёгкая библиотека для реализации
модальных окон на JavaScript. Одним из ключевых параметров при настройке
поведения модального окна является closeOnClick. Этот
параметр контролирует возможность закрытия окна при клике по различным
областям страницы, обеспечивая гибкость взаимодействия с
пользователем.
closeOnClick определяет, каким образом можно
закрыть модальное окно, кликая вне его содержимого. В
Featherlight поддерживаются несколько вариантов значения этого
параметра:
true — модальное окно закрывается при
клике на фон (overlay).false — окно не закрывается при клике
вне контента.'background' — закрытие происходит
только при клике по затемнённому фону вокруг окна.'anywhere' — окно закрывается при
клике по любому месту, включая содержимое.Использование этого параметра позволяет тонко настроить UX, особенно когда важно, чтобы пользователь сначала выполнил определённое действие внутри модального окна перед его закрытием.
Параметр задаётся при инициализации Featherlight через объект настроек:
$.featherlight(content, {
closeOnClick: true
});
Здесь content может быть строкой HTML, селектором
элемента или функцией, возвращающей содержимое.
Пример с разными значениями:
// Закрытие при клике только по фону
$.featherlight('#modalContent', {
closeOnClick: 'background'
});
// Закрытие при клике в любом месте
$.featherlight('#modalContent', {
closeOnClick: 'anywhere'
});
// Запрет на закрытие при клике вне окна
$.featherlight('#modalContent', {
closeOnClick: false
});
При true и
'background'
.close().При 'anywhere'
При false
[data-featherlight-close]).Параметр closeOnClick тесно связан с настройками:
closeIcon — определяет наличие иконки
закрытия окна. Даже если closeOnClick запрещает закрытие по
фону, пользователь может закрыть окно через иконку.persist — при повторном использовании
одного и того же модального окна значение closeOnClick
сохраняется, что позволяет повторно контролировать поведение клика без
дополнительных изменений.beforeClose и
afterClose — позволяют отслеживать момент закрытия
окна, включая вызванный кликом вне содержимого.Пример с обработкой событий:
$.featherlight('#modalContent', {
closeOnClick: 'background',
beforeClose: function(event){
console.log('Окно будет закрыто');
},
afterClose: function(event){
console.log('Окно закрыто');
}
});
false, чтобы случайный
клик не приводил к потере введённых данных.'background' или true, обеспечивая
естественное закрытие.'anywhere' подходит для простых всплывающих подсказок и
неинтерактивных элементов.$.featherlight('<div>Содержимое модального окна</div>', {
closeOnClick: 'background',
closeIcon: '×',
persist: true,
beforeOpen: function(event){
console.log('Окно открывается');
},
afterOpen: function(event){
console.log('Окно открыто');
}
});
В этом примере:
Параметр closeOnClick является одним из наиболее важных
для управления пользовательским взаимодействием с модальными окнами в
Featherlight. Правильное использование этого параметра обеспечивает
баланс между удобством и безопасностью данных, предотвращая
нежелательные закрытия или, наоборот, упрощая быстрый доступ к
информации.