Библиотека Noty предоставляет мощный механизм событий, который позволяет отслеживать жизненный цикл уведомлений и реагировать на действия пользователя. События позволяют выполнять дополнительные операции в момент создания, отображения, скрытия или закрытия уведомления, а также при взаимодействии с элементами уведомления.
События делятся на несколько категорий в зависимости от стадии жизненного цикла уведомления.
1. onShow Вызывается в момент, когда уведомление начинает отображаться на странице. Применение:
new Noty({
text: 'Пример уведомления',
type: 'success',
callbacks: {
onShow: function() {
console.log('Уведомление отображается');
}
}
}).show();
Это событие полезно для запуска анимаций или подготовки данных до полного отображения уведомления.
2. onShown Срабатывает после того, как уведомление полностью показано на странице. Применение:
callbacks: {
onShown: function() {
console.log('Уведомление полностью показано');
}
}
Используется для отслеживания момента, когда уведомление доступно для взаимодействия.
3. onClose Вызывается в момент начала процесса закрытия уведомления. Применение:
callbacks: {
onClose: function() {
console.log('Уведомление начинает скрываться');
}
}
Позволяет выполнить действия перед удалением уведомления из DOM, например, сохранить состояние или отменить действие.
4. onClosed Срабатывает после полного скрытия и удаления уведомления. Применение:
callbacks: {
onClosed: function() {
console.log('Уведомление полностью закрыто');
}
}
Используется для очистки ресурсов, удаления слушателей или запуска новых уведомлений.
5. onClick Срабатывает при клике на уведомление. Применение:
callbacks: {
onClick: function() {
console.log('Уведомление было кликнуто');
}
}
Полезно для создания интерактивных уведомлений, где клик запускает определенное действие.
6. onHover и onUnhover События наведения курсора на уведомление и ухода курсора соответственно. Применение:
callbacks: {
onHover: function() { console.log('Курсор над уведомлением'); },
onUnhover: function() { console.log('Курсор ушёл с уведомления'); }
}
Используются для временной остановки таймера закрытия уведомления или изменения стилей при наведении.
onCloseClick Срабатывает при клике на кнопку закрытия уведомления, если используется кастомная кнопка или стандартная крестик-кнопка.
callbacks: {
onCloseClick: function() {
console.log('Нажата кнопка закрытия уведомления');
}
}
onButtonClick Применяется, если уведомление содержит
кнопки (buttons) и пользователь нажал одну из них.
callbacks: {
onButtonClick: function(button) {
console.log('Нажата кнопка: ', button);
}
}
Позволяет различать действия для каждой кнопки и запускать разные функции.
onAfterShow и onAfterClose Дополнительные события, которые дают возможность запускать код сразу после завершения анимаций появления и скрытия уведомления.
onClosed позволяют запускать следующее уведомление только
после полного закрытия предыдущего.onClick
и onButtonClick.onShow,
onShown, onClose и onClosed дают
полный контроль над визуальной частью уведомлений, позволяя запускать
кастомные CSS-анимации или JavaScript-эффекты.callbacks и методыСобытия можно регистрировать как через объект callbacks
при создании уведомления, так и динамически через методы
.on() и .off().
Пример динамической регистрации:
let noty = new Noty({ text: 'Динамическое уведомление' });
noty.on('onClick', function() {
console.log('Динамический клик');
});
noty.show();
Для удаления слушателя используется метод
.off('имя_события').
| Событие | Когда срабатывает |
|---|---|
| onShow | Начало отображения уведомления |
| onShown | Полное отображение уведомления |
| onClose | Начало закрытия уведомления |
| onClosed | Уведомление полностью закрыто |
| onClick | Клик на уведомление |
| onHover | Наведение курсора на уведомление |
| onUnhover | Уход курсора с уведомления |
| onCloseClick | Клик по кнопке закрытия |
| onButtonClick | Клик по кнопке внутри уведомления |
| onAfterShow | После завершения анимации появления |
| onAfterClose | После завершения анимации скрытия |
Эта схема позволяет гибко контролировать поведение уведомлений на всех этапах их жизненного цикла, обеспечивая полный контроль над пользовательским взаимодействием и визуальными эффектами.