iziToast предоставляет гибкий механизм работы с уведомлениями, включая возможность их программного закрытия. Это особенно полезно в ситуациях, когда нужно убрать уведомление по событию, отличному от таймера авто-закрытия, например, после завершения асинхронной операции или действия пользователя.
В iziToast существует несколько подходов для закрытия уведомлений программно:
iziToast.destroy();
Метод destroy() полностью очищает все текущие
уведомления на странице, мгновенно удаляя их из DOM. Это удобно, если
требуется сбросить все уведомления перед показом нового или при
изменении состояния приложения.
Каждое уведомление в iziToast можно идентифицировать с помощью
уникального id. При создании уведомления можно явно задать
идентификатор:
iziToast.show({
id: 'customToast',
title: 'Внимание',
message: 'Это уведомление можно закрыть программно',
position: 'topRight'
});
Закрыть уведомление по ID можно с помощью:
iziToast.hide({}, 'customToast');
Параметры метода hide:
transitionOut, timeout,
onClosing, onClosed).id уведомления, которое нужно
закрыть.Если id не указан, метод не будет воздействовать на
конкретное уведомление.
Помимо встроенного параметра timeout, можно закрыть
уведомление программно через любой произвольный таймер:
const toastId = 'delayedToast';
iziToast.show({
id: toastId,
title: 'Информация',
message: 'Уведомление закроется через 5 секунд по скрипту',
position: 'topRight',
timeout: false
});
setTimeout(() => {
iziToast.hide({}, toastId);
}, 5000);
В данном примере уведомление не имеет автоматического тайм-аута
(timeout: false), а закрытие полностью контролируется
скриптом.
Метод hide поддерживает различные эффекты анимации,
которые задаются через параметр transitionOut. Доступные
варианты:
'fadeOut' — плавное исчезновение'fadeOutUp' — исчезновение с движением вверх'fadeOutDown' — исчезновение с движением вниз'flipOutX' — вращение по оси X'flipOutY' — вращение по оси YПример использования:
iziToast.hide({
transitionOut: 'fadeOutUp',
timeout: 300
}, 'customToast');
Здесь уведомление исчезнет с эффектом движения вверх, а анимация продлится 300 мс.
Для программного закрытия доступны два колбэка:
onClosing — вызывается в момент начала закрытия
уведомления.onClosed — вызывается после полного удаления
уведомления из DOM.Пример:
iziToast.hide({
onClosing: function(instance, toast, closedBy){
console.log('Начало закрытия:', closedBy);
},
onClosed: function(instance, toast, closedBy){
console.log('Уведомление полностью закрыто:', closedBy);
}
}, 'customToast');
Параметр closedBy показывает причину закрытия:
"timeout", "button", "manual",
"overlay" и др. Для программного закрытия чаще всего будет
"manual".
В одностраничных приложениях часто требуется управлять уведомлениями динамически, чтобы не засорять интерфейс. Программное закрытие позволяет:
function showApiNotification() {
const toastId = 'apiToast';
iziToast.show({
id: toastId,
title: 'Загрузка',
message: 'Ожидание ответа сервера...',
position: 'bottomLeft',
timeout: false
});
fetch('/api/data')
.then(response => response.json())
.finally(() => {
iziToast.hide({}, toastId);
});
}
Такой подход обеспечивает чистый интерфейс без лишних уведомлений, гарантируя, что каждая информационная подсказка исчезает в нужный момент.
Программное закрытие уведомлений в iziToast обеспечивает полный контроль над жизненным циклом сообщений, позволяя управлять интерфейсом динамически и создавать адаптивные уведомления, которые реагируют на реальные события приложения.