Библиотека iziToast предоставляет гибкий механизм работы с уведомлениями, включая управление их отображением и закрытием. Одним из ключевых аспектов интерактивности является возможность закрытия уведомления по клику пользователя. Это позволяет создавать уведомления, которые не перегружают интерфейс и при этом дают пользователю контроль над их удалением.
closeOnClickДля того чтобы уведомление закрывалось при клике на него,
используется параметр closeOnClick. По умолчанию значение
этого параметра равно true, что означает автоматическое
закрытие при нажатии. Если требуется запретить закрытие уведомления по
клику, необходимо установить closeOnClick: false.
Пример создания уведомления с закрытием по клику:
iziToast.show({
title: 'Уведомление',
message: 'Это уведомление можно закрыть кликом',
closeOnClick: true
});
В данном примере при нажатии на область уведомления оно исчезнет, освобождая место на экране.
closeOnClick от timeoutПараметр timeout управляет временем автоматического
закрытия уведомления, тогда как closeOnClick реагирует на
действия пользователя. Например, уведомление с
timeout: 5000 исчезнет через 5 секунд независимо от
действий пользователя, а с включённым closeOnClick его
можно закрыть мгновенно при клике:
iziToast.show({
title: 'Автозакрытие и клик',
message: 'Закроется через 5 секунд или по клику',
timeout: 5000,
closeOnClick: true
});
Совмещение этих параметров позволяет создавать уведомления, которые являются одновременно информативными и интерактивными.
По умолчанию клик на любую область уведомления вызывает его закрытие.
Однако в некоторых случаях требуется назначить закрытие только на
определённые элементы, например, кнопку внутри уведомления. Для этого
можно использовать метод onclick:
iziToast.show({
title: 'Специальное закрытие',
message: 'Закроется только по кнопке',
close: false,
buttons: [
['<button>Закрыть</button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
}]
]
});
В этом примере close: false отключает стандартное
закрытие по клику на уведомление, а кнопка внутри уведомления вручную
инициирует метод hide.
Помимо клика, iziToast позволяет закрывать уведомления программно
через методы hide и destroy. Это полезно, если
требуется закрытие уведомления по событию, а не только по действию
пользователя:
let toast = iziToast.show({
title: 'Программное закрытие',
message: 'Это уведомление закроется через 3 секунды',
timeout: false
});
setTimeout(() => {
iziToast.hide({}, toast);
}, 3000);
В этом примере уведомление останется на экране до тех пор, пока не
сработает таймер, после чего метод hide закроет его.
iziToast поддерживает различные анимации при закрытии уведомлений.
Параметры transitionIn и transitionOut
позволяют задавать анимацию появления и исчезновения. Даже при закрытии
по клику можно использовать плавные эффекты:
iziToast.show({
title: 'Анимация закрытия',
message: 'Используется плавный эффект исчезновения',
closeOnClick: true,
transitionOut: 'fadeOutUp'
});
Эти параметры делают уведомления визуально привлекательными и улучшают пользовательский опыт.
closeOnClick с другими интерактивными функциямиПараметр closeOnClick удобно комбинировать с другими
функциями iziToast, например:
timeout – автоматическое закрытие через заданное
времяbuttons – добавление интерактивных кнопок внутри
уведомленияonClosing – обратный вызов перед закрытием, позволяющий
выполнять дополнительные действияПример комплексного уведомления:
iziToast.show({
title: 'Комплексное уведомление',
message: 'Закрытие по клику, кнопка и таймер',
timeout: 8000,
closeOnClick: true,
buttons: [
['<button>Сохранить</button>', function (instance, toast) {
console.log('Сохранение данных');
instance.hide({}, toast, 'button');
}]
],
onClosing: function(instance, toast, closedBy){
console.log('Уведомление закрыто:', closedBy);
}
});
В этом уведомлении пользователь может закрыть уведомление кликом, дождаться автозакрытия через 8 секунд или использовать кнопку для дополнительного действия перед закрытием.
Такое детальное управление закрытием уведомлений позволяет строить гибкий интерфейс, где уведомления остаются информативными, интерактивными и не загромождают экран.