В библиотеке Noty каждая нотификация может сопровождаться анимацией появления и закрытия. Тип анимации закрытия задаёт визуальное поведение уведомления при его исчезновении с экрана. Этот механизм не только повышает эстетическую составляющую интерфейса, но и влияет на восприятие пользователем завершённости действия.
animation.closeОсновной способ указать анимацию закрытия — использование объекта
animation при создании экземпляра Noty:
new Noty({
text: 'Сообщение успешно удалено',
type: 'success',
animation: {
open: 'animated bounceInRight',
close: 'animated bounceOutLeft'
},
timeout: 3000
}).show();
open — анимация при появлении уведомления.close — анимация при закрытии уведомления.Значения могут быть строками с названием CSS-класса или функциями, возвращающими кастомную анимацию. В большинстве случаев используются анимации из библиотеки Animate.css, которая интегрируется с Noty без дополнительных настроек.
Noty не ограничивает выбор анимации только собственными классами. Наиболее часто применяются:
Пример использования:
new Noty({
text: 'Файл загружен',
type: 'info',
animation: {
open: 'fadeIn',
close: 'fadeOut'
},
timeout: 2500
}).show();
Помимо строковых значений, close может быть функцией,
которая позволяет управлять поведением уведомления с использованием
JavaScript. Функция получает DOM-элемент уведомления, что открывает
возможность сложных анимационных эффектов:
new Noty({
text: 'Данные сохранены',
animation: {
close: function(notyElement) {
$(notyElement).slideUp(500, function() {
notyElement.remove();
});
}
},
timeout: 2000
}).show();
Особенности такого подхода:
notyElement.remove()), иначе нотификация останется в
DOM.В Noty продолжительность анимации закрытия задаётся через свойство
animation в сочетании с CSS или JS-анимацией. Для
CSS-классов чаще всего используется стандартная длительность 0.5–1
секунды. Для JS-функций время определяется внутри функции:
animation: {
close: function(element) {
$(element).fadeOut(800, function() {
element.remove();
});
}
}
Анимация закрытия часто совмещается с таймаутом уведомления:
new Noty({
text: 'Ошибка при загрузке',
type: 'error',
timeout: 3000,
animation: {
open: 'fadeInDown',
close: 'fadeOutUp'
}
}).show();
timeout указывает время до автоматического
закрытия.close активируется по окончании таймаута или
при ручном закрытии (.close()).Noty позволяет изменять анимацию закрытия после создания уведомления:
let n = new Noty({ text: 'Выполняется операция', animation: { close: 'fadeOut' } }).show();
setTimeout(() => {
n.options.animation.close = 'slideOutLeft';
n.close();
}, 2000);
Использование различных типов анимации закрытия в Noty позволяет гибко контролировать поведение уведомлений и создавать интерфейсы, воспринимаемые пользователем как динамичные и отзывчивые.