Событие onOpening в библиотеке iziToast
предназначено для перехвата момента, когда уведомление только начинает
появляться на экране. Оно срабатывает перед началом анимации
показа и предоставляет возможность выполнить дополнительные
действия до визуального отображения уведомления.
iziToast.show({
title: 'Пример',
message: 'Уведомление с onOpening',
onOpening: function(instance, toast){
// Действия при начале открытия уведомления
}
});
Параметры функции onOpening:
instance – объект текущей инстанции iziToast. Через
него можно управлять поведением всех уведомлений: закрывать их, изменять
параметры, обращаться к методам библиотеки.toast – DOM-элемент уведомления, который только что
создаётся. Через него можно добавить кастомные атрибуты, классы,
слушатели событий или управлять стилями.iziToast.show({
title: 'Внимание',
message: 'Уведомление с кастомным стилем',
onOpening: function(instance, toast){
toast.style.backgroundColor = '#2ecc71';
toast.style.color = '#ffffff';
}
});
iziToast.show({
title: 'Статистика',
message: 'Отправка события открытия',
onOpening: function(instance, toast){
console.log('Уведомление готово к показу:', toast);
// Можно отправить данные на сервер
// fetch('/api/log', { method: 'POST', body: JSON.stringify({ type: 'open' }) });
}
});
onOpening позволяет
применить свои эффекты через CSS или Jav * aScript:iziToast.show({
title: 'Анимация',
message: 'Появление с кастомным эффектом',
onOpening: function(instance, toast){
toast.style.transform = 'scale(0)';
setTimeout(() => {
toast.style.transition = 'transform 0.3s ease';
toast.style.transform = 'scale(1)';
}, 10);
}
});
iziToast.show({
title: 'Динамика',
message: 'Изначальный текст',
onOpening: function(instance, toast){
toast.querySelector('.iziToast-message').innerHTML = 'Обновлённый текст уведомления';
}
});
onOpening от onOpeningStart и
onOpenedonOpening – вызывается перед
началом анимации показа, можно изменять DOM и свойства
уведомления.onOpened – вызывается после
завершения анимации показа, уведомление уже полностью видно
пользователю.onOpeningStart – фактически устаревший
и менее используемый хук; современная практика предполагает применение
onOpening.iziToast.show({
title: 'Новое сообщение',
message: 'Обнаружено новое событие',
onOpening: function(instance, toast){
toast.style.boxShadow = '0 0 10px 2px #f1c40f';
}
});
iziToast.show({
title: 'Проверка',
message: 'Может быть скрыто',
onOpening: function(instance, toast){
if (Math.random() > 0.5) {
instance.hide({ target: toast });
}
}
});
iziToast.show({
title: 'ID уведомления',
message: 'Присвоение уникального идентификатора',
onOpening: function(instance, toast){
toast.id = 'toast-' + Date.now();
}
});
onOpening для действий, которые не
должны блокировать анимацию, так как она запускается сразу
после выполнения кода хука.fetch или
navigator.sendBeacon внутри onOpening, чтобы
не задерживать появление уведомления.Событие onOpening является мощным инструментом для
гибкой кастомизации уведомлений: оно открывает доступ к DOM до
визуального показа и позволяет выполнять любые подготовительные
действия, сохраняя плавность анимации и интерактивность уведомлений.