Библиотека Noty предназначена для отображения
уведомлений на веб-странице с гибкой настройкой внешнего вида, поведения
и управления временем отображения. Основной объект уведомления создается
через конструктор new Noty(options), где
options — это объект конфигурации.
Пример минимальной конфигурации:
new Noty({
text: 'Успешная операция',
type: 'success',
timeout: 3000,
layout: 'topRight'
}).show();
alert,
success, warning, error,
info).top,
topLeft, topRight, bottom,
bottomLeft, bottomRight,
center).Noty поддерживает пять стандартных типов уведомлений:
Каждый тип можно стилизовать через CSS или использовать встроенные
темы: mint, metroui, sunset,
relax, nest.
Темы подключаются через CSS и задаются через параметр
theme. Например:
new Noty({
text: 'Событие успешно выполнено',
type: 'success',
theme: 'mint',
layout: 'topRight',
timeout: 2000
}).show();
layout определяет позицию уведомления на экране. Доступные варианты:
top — верх центра.topLeft / topRight — верхний левый /
правый угол.bottom — низ центра.bottomLeft / bottomRight — нижний левый /
правый угол.center — центр экрана.Можно комбинировать с CSS для точной настройки отступов и перекрытия элементов.
Для автоматизации проверок и событий часто используется метод
setTimeout или событийная система:
function showNotification(message, type = 'info') {
new Noty({
text: message,
type: type,
layout: 'topRight',
timeout: 3000,
progressBar: true
}).show();
}
// Пример автоматической проверки состояния
setInterval(() => {
const serverStatus = checkServer();
if (!serverStatus) {
showNotification('Сервер недоступен', 'error');
}
}, 5000);
Noty поддерживает несколько уведомлений одновременно. Для предотвращения наложений можно использовать очередь:
let queue = [];
function enqueueNotification(message, type) {
queue.push({message, type});
if (queue.length === 1) displayNext();
}
function displayNext() {
if (queue.length === 0) return;
const item = queue[0];
const n = new Noty({
text: item.message,
type: item.type,
timeout: 2000,
callbacks: {
onClose: () => {
queue.shift();
displayNext();
}
}
}).show();
}
onShow, onClose, onClick,
afterShow).Noty поддерживает добавление кнопок для взаимодействия:
new Noty({
text: 'Удалить элемент?',
type: 'warning',
buttons: [
Noty.button('Да', 'btn btn-success', () => {
deleteItem();
}),
Noty.button('Нет', 'btn btn-error', n => n.close())
]
}).show();
Noty предоставляет следующие события:
onShow — срабатывает при показе уведомления.afterShow — после полной анимации показа.onClose — при закрытии уведомления.afterClose — после завершения анимации закрытия.onClick — при клике на уведомление.Пример использования событий для автоматизированной логики:
new Noty({
text: 'Задача завершена',
type: 'success',
timeout: 2500,
callbacks: {
onClose: () => {
logCompletion();
}
}
}).show();
Для автоматизации проверок можно комбинировать Noty с тестовыми скриптами:
function runTests() {
const results = performTests();
results.forEach(res => {
new Noty({
text: res.message,
type: res.success ? 'success' : 'error',
timeout: 4000
}).show();
});
}
animation: {
open: 'animated bounceInRight',
close: 'animated bounceOutRight'
}
animate.css.import Noty from 'noty';.const notifySuccess = message => new Noty({
text: message,
type: 'success',
timeout: 2000
}).show();