Библиотека iziToast предоставляет механизм глобальной конфигурации, позволяющий задать поведение всех уведомлений по умолчанию. Это избавляет от дублирования параметров при каждом вызове и упрощает поддержку кода.
iziToast.settings()Глобальные параметры задаются через метод:
iziToast.settings({
timeout: 5000,
position: 'topRight',
transitionIn: 'fadeInDown',
transitionOut: 'fadeOutUp'
});
Все переданные значения применяются ко всем последующим уведомлениям, если они не переопределены локально.
timeout)Определяет длительность показа уведомления (в миллисекундах):
iziToast.settings({
timeout: 3000
});
Значение false отключает автоматическое скрытие:
iziToast.settings({
timeout: false
});
position)Устанавливает расположение уведомлений на экране:
topRighttopLefttopCenterbottomRightbottomLeftbottomCenteriziToast.settings({
position: 'bottomLeft'
});
Параметры:
transitionIntransitionOutПоддерживаются CSS-анимации (например, из Animate.css):
iziToast.settings({
transitionIn: 'bounceInLeft',
transitionOut: 'fadeOutRight'
});
margin)Регулирует расстояние между уведомлениями:
iziToast.settings({
margin: 10
});
zindex)Контролирует наложение уведомлений поверх других элементов:
iziToast.settings({
zindex: 9999
});
drag)Включает возможность закрытия уведомления перетаскиванием:
iziToast.settings({
drag: true
});
closeOnClick)Позволяет закрывать уведомление нажатием:
iziToast.settings({
closeOnClick: true
});
closeOnEscape)iziToast.settings({
closeOnEscape: true
});
pauseOnHover)Останавливает таймер закрытия при наведении курсора:
iziToast.settings({
pauseOnHover: true
});
Можно задать обработчики событий, которые будут применяться ко всем уведомлениям.
onOpening)iziToast.settings({
onOpening: function(instance, toast) {
console.log('Открытие уведомления');
}
});
onOpened)iziToast.settings({
onOpened: function(instance, toast) {
console.log('Уведомление открыто');
}
});
onClosing)iziToast.settings({
onClosing: function(instance, toast, closedBy) {
console.log('Закрытие уведомления');
}
});
onClosed)iziToast.settings({
onClosed: function(instance, toast, closedBy) {
console.log('Уведомление закрыто');
}
});
Локальные параметры имеют приоритет над глобальными:
iziToast.settings({
timeout: 5000
});
iziToast.show({
title: 'Сообщение',
message: 'Локальный таймаут',
timeout: 1000
});
В этом случае конкретное уведомление будет показано 1 секунду, несмотря на глобальное значение 5 секунд.
Библиотека не предоставляет отдельного метода для сброса конфигурации, но можно вручную переопределить значения:
iziToast.settings({
timeout: 5000,
position: 'topRight'
});
Обычно глобальные настройки выносятся в отдельный файл или блок инициализации:
function initToasts() {
iziToast.settings({
timeout: 4000,
position: 'topRight',
pauseOnHover: true,
closeOnClick: true,
transitionIn: 'fadeInDown',
transitionOut: 'fadeOutUp'
});
}
initToasts();
Это обеспечивает единообразие поведения уведомлений во всём приложении.
1. Повторная инициализация настроек
Многократный вызов iziToast.settings() в разных местах
может приводить к непредсказуемому поведению.
2. Игнорирование локальных переопределений
Разработчики иногда ожидают, что глобальные параметры всегда применяются, забывая о приоритете локальных.
3. Некорректные значения анимаций
Использование неподдерживаемых названий анимаций приводит к отсутствию эффектов.
Глобальные настройки можно комбинировать с обёртками:
function showSuccess(message) {
iziToast.show({
color: 'green',
title: 'Успех',
message: message
});
}
При этом глобальная конфигурация задаёт базовое поведение, а функции-обёртки добавляют семантику.
Глобальные настройки не создают заметной нагрузки, однако:
Грамотная конфигурация позволяет сбалансировать визуальные эффекты и производительность интерфейса.