Библиотека Featherlight предоставляет легковесный
способ создания модальных окон (lightbox) на веб-страницах. Одним из
ключевых аспектов управления поведением окна является анимация его
закрытия. Параметр closeSpeed отвечает за скорость этой
анимации, позволяя тонко настраивать пользовательский опыт.
closeSpeed — это числовой параметр, задающий
длительность анимации закрытия окна в миллисекундах. Он
определяет, насколько быстро или медленно исчезает модальное окно после
вызова метода закрытия (close()) или после действия
пользователя, инициирующего закрытие (например, клик по кнопке закрытия
или фону).
Пример базовой настройки:
$.featherlight('#modal-content', {
closeSpeed: 300
});
В этом случае окно будет закрываться с анимацией продолжительностью 300 мс.
Выбор скорости должен учитывать контекст использования: легковесные всплывающие подсказки лучше закрывать быстрее, а презентационные галереи — медленнее для плавного визуального эффекта.
closeSpeed может быть установлен для отдельных
экземпляров Featherlight или глобально для всей
страницы через объект настроек
$.featherlight.defaults:
// Глобальная установка
$.featherlight.defaults.closeSpeed = 400;
// Локальная установка для конкретного окна
$('#open-modal').featherlight({
closeSpeed: 600
});
Глобальная установка облегчает поддержку сайта, поскольку все новые модальные окна автоматически наследуют одинаковую скорость закрытия, обеспечивая единый стиль анимации.
Параметр closeSpeed тесно связан с другими опциями
Featherlight:
openSpeed — скорость открытия окна.
Рекомендуется поддерживать согласованное соотношение открытие/закрытие
для гармоничной анимации.afterClose и beforeClose
— колбэки, вызываемые соответственно после и перед закрытием. Значение
closeSpeed определяет, через какое время выполнятся эти
функции.Пример использования с колбэками:
$.featherlight('#modal', {
closeSpeed: 500,
beforeClose: function(event) {
console.log('Начало анимации закрытия');
},
afterClose: function(event) {
console.log('Модальное окно закрыто');
}
});
Здесь beforeClose срабатывает сразу, а
afterClose — через 500 мс, по завершении анимации.
Хотя closeSpeed управляет временной характеристикой
анимации, Featherlight поддерживает CSS-анимации через
класс .featherlight. В таком случае closeSpeed
определяет задержку или синхронизацию с
JavaScript-анимацией:
.featherlight {
transition: opacity 0.5s ease;
}
В этом примере значение closeSpeed должно
соответствовать 500 мс, чтобы события
afterClose срабатывали синхронно с визуальной анимацией.
Несовпадение может приводить к эффекту «резкого исчезновения», когда
окно исчезает раньше, чем закончится CSS-переход.
В некоторых случаях требуется изменить скорость закрытия во
время выполнения, например, в зависимости от типа контента.
Featherlight позволяет это делать через метод
$.featherlight.current():
var fl = $.featherlight.current();
fl.options.closeSpeed = 800;
fl.close();
После выполнения кода текущее модальное окно закроется с новой, увеличенной скоростью, не требуя перезагрузки страницы или повторной инициализации.
closeSpeed следует
синхронизировать с продолжительностью CSS-перехода.closeSpeed в зависимости от контента, избегая
однообразия.Параметр closeSpeed является мощным инструментом тонкой
настройки поведения Featherlight, обеспечивая контроль над визуальной
плавностью и синхронизацией закрытия окон. Его грамотная настройка
повышает комфорт взаимодействия и визуальную согласованность
интерфейса.