Для работы с библиотекой Noty необходимо подключить её CSS и JS файлы. Наиболее распространённые способы — через CDN или локально скачанные файлы. Пример подключения через CDN:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/noty/lib/noty.css">
<script src="https://cdn.jsdelivr.net/npm/noty/lib/noty.min.js"></script>
Можно также подключить темы, которые изменяют внешний вид уведомлений:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/noty/lib/themes/mint.css">
После подключения файлов библиотека готова к использованию.
Основной метод для создания уведомлений — конструктор
Noty. Он принимает объект с конфигурацией:
new Noty({
text: 'Пример уведомления',
type: 'success', // success, error, warning, info, alert
layout: 'topRight', // top, topLeft, topCenter, topRight, center, bottom, bottomLeft, bottomCenter, bottomRight
theme: 'mint',
timeout: 3000, // миллисекунды
progressBar: true,
closeWith: ['click', 'button']
}).show();
Ключевые параметры:
Noty поддерживает пять основных типов уведомлений:
Каждый тип можно комбинировать с различными темами для достижения желаемого визуального эффекта.
Параметр layout позволяет управлять положением
уведомлений на странице:
top — верх страницы по центру.topLeft / topRight — верхний левый/правый
угол.topCenter — верх по центру.center — центр экрана.bottom, bottomLeft,
bottomCenter, bottomRight — нижняя часть
экрана.Можно одновременно отображать несколько уведомлений в разных местах. Noty автоматически выстраивает их в стек, чтобы они не перекрывали друг друга.
Параметр timeout задаёт время жизни уведомления в
миллисекундах. Если не задан, уведомление останется до ручного
закрытия.
Прогресс-бар визуализирует оставшееся время до закрытия:
new Noty({
text: 'Сообщение с прогресс-баром',
type: 'info',
timeout: 5000,
progressBar: true
}).show();
Можно отключить прогресс-бар или настроить его цвет и анимацию через CSS.
Noty предоставляет систему событий для отслеживания жизненного цикла уведомления:
onShow — вызывается при отображении уведомления.onClose — при закрытии.onClick — при клике по уведомлению.onHover / onUnhover — при наведении и
уходе курсора.Пример использования:
new Noty({
text: 'События уведомления',
type: 'alert',
callbacks: {
onShow: function() {
console.log('Уведомление показано');
},
onClose: function() {
console.log('Уведомление закрыто');
}
}
}).show();
События позволяют интегрировать Noty с логированием действий пользователя или триггерить другие функции.
Noty поддерживает добавление кнопок с пользовательскими действиями:
new Noty({
text: 'Подтвердите действие',
buttons: [
Noty.button('ОК', 'btn btn-success', function() {
console.log('Действие подтверждено');
}),
Noty.button('Отмена', 'btn btn-error', function() {
console.log('Действие отменено');
})
]
}).show();
Кнопки могут иметь свои классы, события и закрывать уведомление после выполнения функции.
Для управления большим количеством уведомлений используется метод
Noty.closeAll():
Noty.closeAll();
Можно передавать параметры для фильтрации по типу:
Noty.closeAll('error'); // Закрыть только уведомления типа error
Это удобно при массовых обновлениях интерфейса или переходе между страницами SPA.
Noty активно применяется для визуального логирования в приложениях:
function logError(message) {
new Noty({
text: message,
type: 'error',
timeout: 4000,
layout: 'topRight'
}).show();
console.error(message);
}
Таким образом можно объединять визуальное и консольное логирование, обеспечивая одновременное уведомление пользователя и запись в разработческую консоль.
Для работы с асинхронными событиями можно создавать уведомления после завершения промисов:
fetch('/api/data')
.then(response => response.json())
.then(data => {
new Noty({
text: 'Данные успешно загружены',
type: 'success'
}).show();
console.log(data);
})
.catch(error => {
new Noty({
text: 'Ошибка при загрузке данных',
type: 'error'
}).show();
console.error(error);
});
Noty идеально подходит для отображения состояния выполнения сетевых запросов или других фоновых операций, синхронизируя визуальную обратную связь и консольное логирование.