Для создания уведомления используется конструктор Noty.
Основная структура вызова выглядит следующим образом:
new Noty({
text: 'Сообщение уведомления',
type: 'alert',
layout: 'topRight',
timeout: 3000,
}).show();
alert,
success, warning, error,
information. Тип влияет на цветовую схему и иконку.top, topLeft, topCenter,
topRight, center, centerLeft,
centerRight, bottom, bottomLeft,
bottomCenter, bottomRight.false отключает
автоматическое закрытие.Метод show() инициирует отображение уведомления. Без его
вызова уведомление не появится, даже если объект создан.
Noty позволяет детально управлять визуальной частью уведомлений:
relax, mint, metroui,
sunset. Можно подключить кастомные темы через CSS.true включает прогресс-бар.['click', 'button', 'hover']. Например:new Noty({
text: 'Нажмите кнопку для закрытия',
closeWith: ['button'],
}).show();
animation: {
open: 'animated bounceInRight',
close: 'animated bounceOutRight',
}
Noty предоставляет встроенные события, позволяющие отслеживать жизненный цикл уведомления:
Пример использования:
new Noty({
text: 'Уведомление с событиями',
type: 'success',
callbacks: {
onShow: function() {
console.log('Уведомление показано');
},
onClose: function() {
console.log('Уведомление закрыто');
}
}
}).show();
Можно создавать уведомления, которые обновляют текст или параметры после показа:
let myNoty = new Noty({
text: 'Начальное сообщение',
type: 'information',
timeout: false
}).show();
setTimeout(() => {
myNoty.setText('Сообщение обновлено через 3 секунды');
myNoty.setType('success');
}, 3000);
Методы setText и setType позволяют менять
текст и тип уведомления в реальном времени, не создавая новое.
Для управления несколькими уведомлениями удобно хранить ссылки на объекты Noty:
let notifications = [];
for (let i = 1; i <= 5; i++) {
notifications.push(new Noty({
text: `Уведомление ${i}`,
type: 'alert',
timeout: 2000
}).show());
}
// Закрыть все уведомления через 5 секунд
setTimeout(() => {
notifications.forEach(n => n.close());
}, 5000);
Внутри текста уведомления допустимо использовать HTML-контент и кнопки:
new Noty({
text: '<strong>Важное сообщение!</strong> <button id="confirmBtn">Подтвердить</button>',
type: 'warning',
timeout: false,
callbacks: {
onShow: function() {
document.getElementById('confirmBtn').addEventListener('click', () => {
this.close();
});
}
}
}).show();
Такой подход позволяет создавать полностью интерактивные уведомления без дополнительных модальных окон.
stop().Использование этих методов позволяет строить гибкую систему уведомлений с динамическим поведением и контролем жизненного цикла.