Библиотека Noty предназначена для создания уведомлений в веб-приложениях с гибкой кастомизацией внешнего вида, анимаций и поведения. Она облегчает добавление всплывающих сообщений без необходимости ручного написания HTML и CSS для каждого уведомления.
Создание базового уведомления выполняется с помощью конструктора
new Noty():
new Noty({
text: 'Привет, это уведомление!',
type: 'alert',
timeout: 3000
}).show();
Ключевые параметры конструктора:
text — содержимое уведомления (может содержать
HTML).type — тип уведомления: alert,
success, warning, error,
info.timeout — время жизни уведомления в миллисекундах; если
false, уведомление будет ждать явного закрытия.layout — позиция на экране: top,
topLeft, topRight, bottom,
bottomLeft, bottomRight,
center.theme — визуальный стиль уведомления (например,
mint, metroui, relax).Тема relax создаёт мягкий, ненавязчивый стиль
уведомлений с плавными анимациями появления и скрытия. Для её
использования достаточно указать параметр
theme: 'relax':
new Noty({
text: 'Это уведомление с темой relax',
type: 'info',
layout: 'topRight',
theme: 'relax',
timeout: 4000
}).show();
Особенности темы relax:
success — зелёный,
error — красный, warning — оранжевый,
info — синий.Noty поддерживает несколько типов уведомлений, каждый из которых влияет на цветовую схему и иконку:
alert — стандартное уведомление без акцентированных
цветов.success — подтверждение успешного действия.error — отображение ошибок.warning — предупреждения о потенциальных
проблемах.info — информационные сообщения.Пример с разными типами:
const types = ['alert', 'success', 'error', 'warning', 'info'];
types.forEach(type => {
new Noty({
text: `Уведомление типа ${type}`,
type: type,
theme: 'relax',
timeout: 3000
}).show();
});
Параметр timeout задаёт автоматическое закрытие
уведомления. Для полной ручной контроля можно использовать
false:
let n = new Noty({
text: 'Закрой меня вручную',
theme: 'relax',
timeout: false
}).show();
setTimeout(() => n.close(), 5000); // закроется через 5 секунд программно
Дополнительно, Noty поддерживает методы управления уведомлением:
show() — отобразить уведомление.close() — закрыть уведомление.setText(newText) — изменить текст уведомления
динамически.setType(newType) — изменить тип уведомления на
лету.Noty позволяет размещать уведомления в разных частях экрана с помощью
параметра layout:
top, topLeft, topRightbottom, bottomLeft,
bottomRightcenter, inlineПример использования центра экрана:
new Noty({
text: 'Центральное уведомление',
theme: 'relax',
layout: 'center',
timeout: 3500
}).show();
В теме relax удобно добавлять интерактивные элементы
через массив buttons. Каждая кнопка создаётся с помощью
функции Noty.button:
let n = new Noty({
text: 'Согласны с условиями?',
theme: 'relax',
buttons: [
Noty.button('Да', 'btn-success', function () {
console.log('Пользователь согласился');
n.close();
}),
Noty.button('Нет', 'btn-error', function () {
console.log('Пользователь отказался');
n.close();
})
]
}).show();
Параметры кнопок:
label — текст кнопки.className — CSS-класс для стилизации.callback — функция, выполняемая при нажатии.Тема relax имеет предустановленные плавные анимации, но их можно
кастомизировать через animation:
new Noty({
text: 'Пользовательская анимация',
theme: 'relax',
animation: {
open: 'animated fadeInDown',
close: 'animated fadeOutUp',
easing: 'swing',
speed: 500
}
}).show();
Noty поддерживает события жизненного цикла:
onShow — срабатывает при появлении уведомления.onClose — при закрытии уведомления.onClick — при клике на уведомление.onHover / onMouseEnter /
onMouseLeave — события наведения мыши.Пример с событиями:
new Noty({
text: 'Наведи на меня',
theme: 'relax',
timeout: 5000,
callbacks: {
onShow: () => console.log('Показано уведомление'),
onClose: () => console.log('Уведомление закрыто')
}
}).show();
Noty автоматически создаёт очередь уведомлений, если несколько
сообщений отображаются одновременно. Параметр queue
позволяет управлять порядком отображения:
Noty.overrideDefaults({
layout: 'topRight',
theme: 'relax',
queue: 'global'
});
new Noty({text: 'Первое уведомление'}).show();
new Noty({text: 'Второе уведомление'}).show();
Это гарантирует, что уведомления будут отображаться по очереди и не перекрывать друг друга.
Уведомления relax могут содержать HTML, что позволяет добавлять ссылки, изображения и сложные блоки:
new Noty({
text: '<strong>Важно!</strong> Проверьте <a href="#">новые данные</a>',
theme: 'relax',
type: 'warning',
timeout: 5000
}).show();
Можно также создавать полностью кастомные элементы через
type: 'alert' и вставку HTML внутри text.
Noty легко интегрируется с jQuery, React, Vue или Vanilla JS. Для React или Vue обычно используют вызовы Noty через события компонента или хук, сохраняя возможность изменять текст и тип уведомления динамически.
Эта детальная структура возможностей темы relax позволяет создавать современный интерфейс уведомлений, плавно вписывающихся в дизайн приложения, с минимальной нагрузкой на код и гибкостью в настройке визуального и функционального поведения.