Библиотека Noty предназначена для создания
уведомлений в браузере с минимальными усилиями. Основой работы является
объект Noty, который создаётся через конструктор с
конфигурационным объектом.
new Noty({
text: 'Пример уведомления',
type: 'alert',
layout: 'topRight',
timeout: 3000
}).show();
Каждый параметр конфигурации выполняет конкретную функцию и позволяет гибко управлять внешним видом, поведением и взаимодействием уведомлений.
textКлючевой параметр, отвечающий за содержимое уведомления. Может быть простым текстом или HTML-разметкой:
text: 'Загрузка завершена'
text: '<strong>Внимание!</strong> Ошибка при сохранении'
Важно: использование HTML позволяет стилизовать отдельные части текста, но требует аккуратности во избежание XSS-уязвимостей.
typeОпределяет тип уведомления, что влияет на его визуальное оформление и иконки. Стандартные значения:
alert – базовое уведомлениеsuccess – уведомление об успешной операцииerror – уведомление об ошибкеwarning – предупреждениеinformation – информационное сообщениеtype: 'success'
Тип можно динамически изменять через метод setType после
создания объекта:
noty.setType('error');
layoutОпределяет позицию уведомления на странице. Доступные варианты:
top, topLeft, topCenter,
topRightcenter, centerLeft,
centerRightbottom, bottomLeft,
bottomCenter, bottomRightПример расположения в правом верхнем углу:
layout: 'topRight'
layout влияет также на анимацию появления, которая
подбирается автоматически под выбранное расположение.
themeПозволяет менять визуальный стиль уведомлений. Библиотека поддерживает несколько тем:
mintrelaxmetrouisunsetПрименение темы:
theme: 'relax'
Темы управляют цветами, шрифтами и тенями, при этом каждая тема может быть дополнительно кастомизирована через CSS.
timeoutОпределяет время в миллисекундах, через которое уведомление исчезает автоматически.
false блокирует автоматическое закрытие.0 часто используется для постоянных
уведомлений до явного закрытия.timeout: 5000 // исчезает через 5 секунд
timeout: false // не исчезает автоматически
Для динамического изменения таймаута используется метод
setTimeout.
progressBarОтвечает за отображение индикатора времени до закрытия уведомления. Может принимать значения:
true – включить прогресс-барfalse – отключитьprogressBar: true
Индикатор управляется автоматически и синхронизирован с параметром
timeout.
closeWithМассив методов закрытия уведомления. Возможные значения:
'click' – клик по уведомлению'button' – специальная кнопка закрытия'hover' – при наведении курсораcloseWith: ['click', 'button']
Позволяет гибко настраивать пользовательский опыт взаимодействия с уведомлениями.
callbacksПозволяют отслеживать жизненный цикл уведомления. Основные события:
onShow – при показе уведомленияonClose – перед закрытиемafterShow – после анимации появленияafterClose – после анимации закрытияПример использования:
callbacks: {
onShow: function() { console.log('Уведомление показано'); },
onClose: function() { console.log('Уведомление закроется'); }
}
С помощью этих функций можно реализовать логирование, триггеры других действий или сложные цепочки уведомлений.
buttonsПозволяет добавлять кастомные кнопки с собственными обработчиками. Пример:
buttons: [
Noty.button('OK', 'btn btn-success', function() {
console.log('Нажата кнопка OK');
this.close();
}),
Noty.button('Отмена', 'btn btn-danger', function() {
this.close();
})
]
Каждая кнопка создаётся через метод Noty.button, который
принимает текст, CSS-класс и callback-функцию.
new Noty({
text: 'Скачивание завершено',
type: 'success',
layout: 'bottomLeft',
theme: 'mint',
timeout: 4000,
progressBar: true,
closeWith: ['click', 'button'],
callbacks: {
afterShow: function() { console.log('Показано уведомление'); }
},
buttons: [
Noty.button('Открыть', 'btn btn-primary', function() {
console.log('Файл открыт');
this.close();
}),
Noty.button('Закрыть', 'btn btn-secondary', function() {
this.close();
})
]
}).show();
Такое уведомление демонстрирует сочетание всех базовых параметров: текст, тип, расположение, тема, прогресс-бар, автоматическое закрытие, пользовательские кнопки и события.
Эта структура параметров позволяет строить как простые уведомления для кратких сообщений, так и сложные интерактивные окна с действиями пользователя, полностью контролируя внешний вид и поведение.