Библиотека iziToast предоставляет механизм управления жизненным циклом уведомлений, включая их программное удаление. Уничтожение экземпляров позволяет контролировать поведение интерфейса, предотвращать накопление уведомлений и освобождать ресурсы.
Каждое уведомление, созданное через iziToast,
представляет собой DOM-элемент, добавленный в документ. Удаление
уведомления может происходить:
timeout)Контроль над уничтожением экземпляров особенно важен при динамических интерфейсах, где уведомления создаются часто.
iziToast.destroy()Глобальный метод destroy() полностью удаляет все
уведомления и очищает контейнер библиотеки.
iziToast.destroy();
Особенности:
.iziToast-wrapperПрименение:
iziToast.hide()Метод hide() используется для удаления конкретного
уведомления.
iziToast.hide({}, toastElement);
Параметры:
Пример:
iziToast.show({
title: 'Сообщение',
message: 'Это уведомление будет удалено вручную',
timeout: false,
onOpening: function(instance, toast) {
setTimeout(function() {
instance.hide({}, toast);
}, 3000);
}
});
Ключевые моменты:
Для удобства управления уведомлениями можно сохранять ссылку на DOM-элемент:
let currentToast;
iziToast.show({
title: 'Уведомление',
message: 'Контролируемое уведомление',
timeout: false,
onOpening: function(instance, toast) {
currentToast = toast;
}
});
Позже уведомление можно удалить:
iziToast.hide({}, currentToast);
По умолчанию iziToast.hide() запускает анимацию скрытия.
Управление этим поведением осуществляется через параметры:
iziToast.hide({
transitionOut: 'fadeOut'
}, toastElement);
Популярные значения transitionOut:
fadeOutfadeOutUpfadeOutDownbounceOutДля мгновенного удаления можно использовать минимальную анимацию или
задать timeout: 0 при создании.
Часто уведомления удаляются при взаимодействии:
iziToast.show({
title: 'Удаление',
message: 'Нажмите кнопку',
buttons: [
['<button>Закрыть</button>', function (instance, toast) {
instance.hide({}, toast);
}]
]
});
Преимущества:
timeoutПараметр timeout задаёт время жизни уведомления:
iziToast.show({
title: 'Автоудаление',
message: 'Исчезнет через 5 секунд',
timeout: 5000
});
Особенности:
timeout: false отключает автоудалениеpauseOnHover)При большом количестве уведомлений полезно управлять ими централизованно:
document.querySelector('#clearAll').addEventListener('click', function() {
iziToast.destroy();
});
Или выборочно:
document.querySelectorAll('.iziToast').forEach(function(toast) {
iziToast.hide({}, toast);
});
В SPA-приложениях важно удалять уведомления при навигации:
window.addEventListener('beforeunload', function() {
iziToast.destroy();
});
Или при смене маршрута:
router.beforeEach((to, from, next) => {
iziToast.destroy();
next();
});
Несвоевременное удаление уведомлений может привести к:
Рекомендации:
timeout: false без необходимостиdestroy() при полной очистке
интерфейсаПри вызове hide() или destroy()
библиотека:
Это гарантирует корректное освобождение ресурсов и отсутствие «висячих» элементов.
Часто используются комбинированные подходы:
iziToast.show({
title: 'Комбинированный сценарий',
message: 'Удалится автоматически или вручную',
timeout: 10000,
buttons: [
['<button>Закрыть</button>', function (instance, toast) {
instance.hide({}, toast);
}]
]
});
Поведение:
Библиотека предоставляет колбэки:
iziToast.show({
title: 'События',
message: 'Отслеживание удаления',
onClosing: function(instance, toast, closedBy) {
console.log('Закрытие:', closedBy);
},
onClosed: function(instance, toast, closedBy) {
console.log('Удалено:', closedBy);
}
});
Параметр closedBy может принимать
значения:
timeoutbuttondragoverlaymanualЭто позволяет реализовывать дополнительную логику при уничтожении.
destroy() при полной очистке UIКонтроль уничтожения экземпляров — важная часть работы с iziToast, позволяющая создавать отзывчивый, чистый и управляемый интерфейс.