Noty — это легковесная библиотека для создания уведомлений в браузере на JavaScript. Она позволяет динамически формировать сообщения с различными типами уведомлений, позиционированием на странице и стилями отображения, обеспечивая высокий уровень кастомизации без необходимости писать собственный код уведомлений с нуля.
Noty строится на объектно-ориентированном подходе, где каждое уведомление создаётся как отдельный объект с набором параметров. Основные параметры:
text — текст уведомления.type — тип уведомления (alert,
success, error, warning,
info).layout — расположение уведомления на странице
(top, topLeft, topRight,
bottom, bottomLeft, bottomRight,
center).theme — визуальная тема (metroui,
relax, sunset, и другие).timeout — время в миллисекундах, после которого
уведомление автоматически исчезает.progressBar — отображение индикатора времени жизни
уведомления.closeWith — способ закрытия (click,
button, hover).Для создания уведомления используется конструкция
new Noty(options). Простейший пример:
new Noty({
text: 'Операция выполнена успешно',
type: 'success',
timeout: 3000,
layout: 'topRight'
}).show();
Метод show() инициирует отображение уведомления на
странице. Можно создавать уведомления без явного вызова
show(), если используется цепочка методов
Noty().show().
Noty поддерживает пять основных типов:
Тип уведомления влияет на визуальный стиль и иконку (если тема поддерживает иконки).
Layout определяет, где на экране будет отображаться уведомление. Noty предоставляет девять встроенных вариантов:
top и bottom — центрирование по
горизонтали.topLeft, topRight,
bottomLeft, bottomRight — угловые
позиции.center — центр экрана.inline — встраивание уведомления в конкретный элемент
DOM.topCenter, bottomCenter — горизонтальное
центрирование сверху или снизу.Пример позиционирования:
new Noty({
text: 'Сообщение в левом верхнем углу',
layout: 'topLeft',
type: 'info'
}).show();
Noty позволяет менять визуальное оформление уведомлений с помощью темы. Каждая тема определяет цветовую гамму, шрифты, отступы, анимацию. Стандартные темы:
metroui — минималистичный современный стиль.relax — мягкие цвета, плавные анимации.sunset — яркие оттенки, контрастный дизайн.mint — светлая и свежая цветовая схема.nest — минималистичный вид с рамкой.Темы подключаются через CSS и выбираются при инициализации:
new Noty({
text: 'Сообщение с темой Metroui',
theme: 'metroui'
}).show();
timeout. Если timeout: false, уведомление
остаётся до ручного закрытия.closeWith: ['click', 'button'].Пример с прогресс-баром и ручным закрытием:
new Noty({
text: 'Нажмите кнопку, чтобы закрыть',
type: 'alert',
timeout: false,
progressBar: true,
closeWith: ['button']
}).show();
Noty предоставляет набор событий для отслеживания жизненного цикла уведомления:
onShow — при показе уведомления.onClose — перед удалением уведомления.afterShow — после появления уведомления на экране.afterClose — после полного исчезновения
уведомления.Пример использования события:
let notification = new Noty({
text: 'Проверка событий',
type: 'info'
});
notification.on('afterShow', function() {
console.log('Уведомление отображено');
});
notification.show();
Noty автоматически управляет очередью уведомлений. Если несколько
уведомлений создаются одновременно, они выстраиваются по выбранному
layout без перекрытия. Для управления очередью можно использовать метод
setTimeout или создавать уведомления с разным
timeout.
Noty поддерживает inline уведомления, что позволяет вставлять сообщения внутрь конкретного элемента:
new Noty({
text: 'Встроенное уведомление',
layout: 'inline',
target: '#container',
type: 'success'
}).show();
target — селектор или элемент DOM, в который будет
встроено уведомление.text может содержать
HTML. Можно добавлять ссылки, кнопки и изображения.new Noty({
text: '<strong>Успех!</strong> Данные сохранены.',
type: 'success',
layout: 'topRight',
theme: 'sunset',
timeout: 5000,
progressBar: true,
closeWith: ['click', 'button'],
animation: {
open: 'animated bounceInRight',
close: 'animated bounceOutRight'
}
}).show();
Такое уведомление сочетает в себе кастомный HTML, тему, прогресс-бар и анимацию.
type: 'error' с
ручным закрытием.type: 'info' или
success с коротким timeout.topRight, bottomLeft).Noty обеспечивает лёгкую, но мощную систему уведомлений, которую можно тонко настраивать под любые требования веб-приложений.