Библиотека Toastify по умолчанию использует CSS-анимации для плавного появления и исчезновения уведомлений. Это улучшает визуальное восприятие, однако в ряде случаев анимации требуется отключить:
В Toastify анимации контролируются через параметр
duration и CSS-классы. Базовый способ отключения — убрать
переходы и анимации через стили.
.toastify {
animation: none !important;
transition: none !important;
}
Такой подход полностью убирает:
Важно учитывать, что !important используется для
переопределения встроенных стилей библиотеки.
Toastify применяет анимацию при добавлении уведомления в DOM. Она
реализуется через CSS @keyframes.
Для отключения только появления:
.toastify.on {
animation: none !important;
}
Класс .on добавляется в момент отображения
уведомления.
Анимация скрытия управляется через удаление элемента и CSS-переходы.
.toastify.off {
animation: none !important;
transition: none !important;
}
Класс .off используется при закрытии уведомления.
Альтернативный способ — установить минимальные значения длительности:
Toastify({
text: "Сообщение без анимации",
duration: 3000,
style: {
transition: "none",
animation: "none"
}
}).showToast();
Этот способ работает локально для конкретного уведомления.
Для проектов с большим количеством уведомлений предпочтительнее централизованный подход:
.toastify,
.toastify.on,
.toastify.off {
animation: none !important;
transition: none !important;
}
Преимущества:
Toastify использует стандартные анимации, например:
@keyframes toastify-bounce {
/* ... */
}
Чтобы полностью исключить их влияние:
@keyframes toastify-bounce {
from { opacity: 1; }
to { opacity: 1; }
}
Таким образом анимация становится визуально незаметной.
Отключение анимаций может быть критично:
Отсутствие анимации:
При интеграции с библиотеками анимации (например, CSS-фреймворками или JS-аниматорами) стандартные эффекты Toastify могут конфликтовать.
В таких случаях:
Пример:
Toastify({
text: "Кастомная анимация",
className: "my-toast"
}).showToast();
.my-toast {
animation: fadeInCustom 0.2s ease;
}
Анимации могут создавать проблемы при автоматическом тестировании:
Отключение анимаций делает:
Современный подход — учитывать системные настройки пользователя:
@media (prefers-reduced-motion: reduce) {
.toastify {
animation: none !important;
transition: none !important;
}
}
Это автоматически отключает анимации для пользователей, предпочитающих минимальное движение интерфейса.
Иногда требуется оставить только часть эффектов:
Пример:
.toastify {
animation: fadeIn 0s;
transition: opacity 0.3s;
}
Так сохраняется плавное исчезновение без анимации появления.
Toastify позволяет задавать стили напрямую:
Toastify({
text: "Без анимации",
style: {
opacity: "1",
transition: "none",
transform: "none"
}
}).showToast();
Этот метод удобен для точечного контроля.
При отключении анимаций исчезает эффект “выезда” уведомлений:
gravity: "top")gravity: "bottom")Без анимации уведомление просто появляется в конечной позиции без движения, что может визуально изменить восприятие интерфейса.
Отказ от анимации:
Плюсы:
Минусы:
Выбор зависит от задач конкретного приложения.
На практике используются комбинированные решения:
Пример:
const disableAnimations = true;
Toastify({
text: "Сообщение",
style: disableAnimations
? { animation: "none", transition: "none" }
: {}
}).showToast();
Так достигается гибкость без изменения основной логики приложения.