В iziToast скорость анимаций управляется с помощью
свойства transitionIn и transitionOut, а также
опции transitionInDuration и
transitionOutDuration. Эти параметры определяют, как быстро
уведомление появляется и исчезает с экрана.
iziToast.show({
title: 'Пример',
message: 'Уведомление с кастомной анимацией',
transitionIn: 'fadeInUp',
transitionOut: 'fadeOutDown',
transitionInDuration: 700,
transitionOutDuration: 500
});
transitionIn – задаёт тип анимации
появления уведомления. Возможные значения: 'fadeIn',
'fadeInUp', 'fadeInDown',
'flipInX' и другие.transitionOut – задаёт тип анимации
исчезновения уведомления. Аналогично transitionIn.transitionInDuration – время появления
уведомления в миллисекундах.transitionOutDuration – время
исчезновения уведомления в миллисекундах.Увеличение значений transitionInDuration и
transitionOutDuration делает анимацию более плавной,
уменьшение — более резкой.
Можно задавать отдельные скорости для разных типов уведомлений: success, error, warning, info. Это полезно, если визуально необходимо выделять определённые сообщения.
iziToast.success({
title: 'Успех',
message: 'Операция выполнена',
transitionInDuration: 800,
transitionOutDuration: 400
});
iziToast.error({
title: 'Ошибка',
message: 'Произошла ошибка',
transitionInDuration: 400,
transitionOutDuration: 800
});
В этом примере уведомление об успешной операции появляется медленно и исчезает быстрее, а уведомление об ошибке — наоборот, быстро появляется и медленно исчезает.
Для единообразия интерфейса можно настроить скорость анимаций
глобально при инициализации iziToast через
iziToast.settings():
iziToast.settings({
transitionIn: 'fadeInUp',
transitionOut: 'fadeOutDown',
transitionInDuration: 600,
transitionOutDuration: 600
});
Все последующие уведомления будут использовать эти параметры по умолчанию, что упрощает поддержку кода и делает интерфейс визуально согласованным.
Для более гибкой настройки скорости анимации можно использовать функции, которые вычисляют длительность исходя из условий:
iziToast.show({
title: 'Событие',
message: 'Динамическая скорость',
transitionIn: 'fadeIn',
transitionOut: 'fadeOut',
transitionInDuration: () => 300 + Math.random() * 700,
transitionOutDuration: () => 300 + Math.random() * 700
});
Такой подход позволяет делать анимации непредсказуемыми или адаптировать их под длину текста уведомления.
iziToast позволяет использовать собственные CSS-классы для анимаций,
а transitionInDuration и transitionOutDuration
контролируют только временные рамки выполнения:
@keyframes customFadeIn {
0% { opacity: 0; transform: translateY(20px); }
100% { opacity: 1; transform: translateY(0); }
}
@keyframes customFadeOut {
0% { opacity: 1; transform: translateY(0); }
100% { opacity: 0; transform: translateY(20px); }
}
.customIn {
animation: customFadeIn 1s forwards;
}
.customOut {
animation: customFadeOut 1s forwards;
}
iziToast.show({
title: 'Кастомная анимация',
message: 'Используется CSS-анимация',
transitionIn: 'customIn',
transitionOut: 'customOut',
transitionInDuration: 1000,
transitionOutDuration: 1000
});
Это позволяет полностью контролировать визуальный эффект уведомлений и синхронизировать его с другими элементами интерфейса.
На мобильных устройствах стоит учитывать, что плавность анимаций напрямую влияет на производительность. Для слабых устройств рекомендуется устанавливать transitionInDuration и transitionOutDuration в диапазоне 300–600 мс, чтобы избежать лагов при отображении уведомлений.
Оптимальная комбинация — плавная, но не затянутая анимация, которая не мешает восприятию контента.
Эти техники позволяют гибко управлять визуальной динамикой уведомлений, делая интерфейс отзывчивым и информативным одновременно.