Библиотека Noty использует анимации для появления и исчезновения уведомлений. По умолчанию применяются CSS-классы (например, из Animate.css или собственные стили), которые создают плавные визуальные переходы. Однако в ряде случаев анимации необходимо отключить:
Отключение анимации в Noty реализуется через конфигурацию параметров
animation.
Анимация управляется двумя свойствами:
open — отвечает за появление уведомленияclose — отвечает за скрытие уведомленияЧтобы полностью отключить анимацию, необходимо установить для обоих
свойств значение null или false.
new Noty({
text: 'Уведомление без анимации',
animation: {
open: null,
close: null
}
}).show();
Альтернативный вариант:
new Noty({
text: 'Без анимации',
animation: false
}).show();
Во втором случае отключаются все анимации сразу.
После отключения:
close() или
истечения timeoutЭто особенно важно при большом количестве уведомлений, когда анимации могут создавать лишнюю нагрузку.
Noty позволяет задать настройки по умолчанию через
Noty.overrideDefaults. Это удобно, если требуется отключить
анимации во всём приложении.
Noty.overrideDefaults({
animation: {
open: null,
close: null
}
});
После этого все создаваемые уведомления будут без анимации, если явно не указано обратное.
Иногда требуется отключить только одну фазу — например, оставить анимацию появления, но убрать исчезновение.
new Noty({
text: 'Без анимации закрытия',
animation: {
open: 'animated fadeIn',
close: null
}
}).show();
Или наоборот:
new Noty({
text: 'Без анимации появления',
animation: {
open: null,
close: 'animated fadeOut'
}
}).show();
Такой подход позволяет гибко контролировать UX.
Вместо null допускается использование пустых строк:
animation: {
open: '',
close: ''
}
Это также отключает применение CSS-классов, но считается менее явным
способом. Предпочтительнее использовать null или
false.
При отключенной анимации:
timeout начинает отсчитываться сразуonShow и onClose срабатывают
быстрееЭто важно учитывать при логике, завязанной на жизненный цикл уведомления.
В автоматических тестах отключение анимации — стандартная практика:
Noty.overrideDefaults({
animation: false,
timeout: 0
});
Преимущества:
Дополнительно можно полностью убрать анимации на уровне CSS:
.noty_effects_open,
.noty_effects_close {
animation: none !important;
transition: none !important;
}
Этот способ полезен, если анимации задаются сторонними стилями или библиотеками.
Отключение анимации может значительно повлиять на производительность:
Особенно заметно при:
Отключение анимации часто используется вместе с:
timeout: false — уведомление не исчезаетprogressBar: false — отключение прогресс-бараqueue: false — мгновенное отображение без очередиПример:
new Noty({
text: 'Статичное уведомление',
timeout: false,
progressBar: false,
animation: false,
queue: false
}).show();
1. Указание несуществующих классов
animation: {
open: 'none',
close: 'none'
}
Такой код не отключает анимацию, а просто не применяет корректные
классы. Используется null или false.
2. Частичное переопределение без учёта дефолтов
Если указать только open, close может
остаться анимированным:
animation: {
open: null
}
Лучше всегда задавать оба свойства.
3. Конфликт с внешними CSS-библиотеками
Если подключена Animate.css или аналогичная библиотека, она может добавлять эффекты по умолчанию. В таком случае требуется явное отключение.
В пользовательских интерфейсах с акцентом на UX анимации обычно оставляют, но делают минимальными.
После полного отключения:
Такой режим является важным инструментом для разработки, оптимизации и контроля поведения уведомлений в сложных приложениях.