Для работы с iziToast необходимо подключить библиотеку в проект. Это
делается через и в
HTML:
После подключения можно вызывать функции
iziToast.show(), iziToast.success(),
iziToast.error(), iziToast.warning() и
iziToast.info() для отображения уведомлений с различными
стилями.
iziToast.success({
title: 'Успех',
message: 'Данные успешно сохранены',
position: 'topRight'
});
Параметр position определяет расположение уведомления:
topRight, topLeft, bottomRight,
bottomLeft, topCenter,
bottomCenter.
iziToast предоставляет несколько встроенных событий, на которые можно подписаться при создании уведомления. К ключевым относятся:
Пример использования:
iziToast.show({
title: 'Информация',
message: 'Это уведомление с обработчиками событий',
onOpening: function(instance, toast){
console.log('Начало открытия уведомления', toast);
},
onOpened: function(instance, toast){
console.log('Уведомление открыто', toast);
},
onClosing: function(instance, toast, closedBy){
console.log('Закрытие уведомления', closedBy);
},
onClosed: function(instance, toast, closedBy){
console.log('Уведомление закрыто', closedBy);
},
onClick: function(instance, toast, event){
console.log('Клик на уведомление', event);
}
});
Здесь instance — объект iziToast, toast —
DOM-элемент уведомления, closedBy — строка, указывающая,
что инициировало закрытие (timeout, button,
click).
iziToast позволяет добавлять кастомные кнопки с собственными
событиями. Кнопки задаются через массив buttons, где каждый
элемент — функция, возвращающая HTML-кнопку и обработчик событий.
Пример уведомления с кнопками:
iziToast.show({
title: 'Подтверждение',
message: 'Вы хотите удалить запись?',
buttons: [
['', function (instance, toast) {
console.log('Нажата кнопка Да');
instance.hide({transitionOut: 'fadeOut'}, toast, 'button');
}],
['', function (instance, toast) {
console.log('Нажата кнопка Нет');
instance.hide({transitionOut: 'fadeOut'}, toast, 'button');
}]
],
position: 'topRight'
});
Особенности работы с кнопками:
instance и элемент
toast.instance.hide().transitionOut задаёт анимацию скрытия.Обработчики можно добавлять и изменять после создания уведомления через методы iziToast. Например, подписка на клик после инициализации:
const toastInstance = iziToast.show({
title: 'Динамический клик',
message: 'Кнопка добавлена позже',
buttons: []
});
const btn = document.createElement('button');
btn.textContent = 'Нажми меня';
btn.addEventListener('click', function() {
console.log('Кнопка сработала');
toastInstance.hide({transitionOut: 'fadeOut'}, toastInstance, 'button');
});
toastInstance.querySelector('.iziToast-buttons').appendChild(btn);
Такой подход позволяет гибко управлять содержимым уведомления и подключать обработчики после его рендеринга.
'timeout', 'button', 'click',
'overlay'.onClosing позволяет выполнить действия до
исчезновения уведомления.onClosed подходит для логирования или очистки
ресурсов.Пример с логированием причины закрытия:
iziToast.info({
title: 'Внимание',
message: 'Уведомление закроется',
timeout: 5000,
onClosed: function(instance, toast, closedBy){
console.log('Уведомление закрыто по причине:', closedBy);
}
});
Можно комбинировать обработчики уведомления и кнопок для сложной логики:
iziToast.show({
title: 'Вопрос',
message: 'Сохранить изменения?',
onClick: function(instance, toast){
console.log('Уведомление кликнуто');
},
buttons: [
['', function(instance, toast){
console.log('Сохранение данных...');
instance.hide({}, toast, 'button');
}],
['', function(instance, toast){
console.log('Отмена действия');
instance.hide({}, toast, 'button');
}]
]
});
Такое сочетание позволяет создавать интерактивные уведомления с разными сценариями поведения, полностью управляемыми через события.