Библиотека Noty предоставляет мощный инструмент для
создания уведомлений на веб-страницах, позволяя отображать сообщения
различного типа, кастомизировать их внешний вид и поведение. В основе
работы Noty лежит объект Noty, который создается с набором
опций и методом show(), запускающим уведомление.
new Noty({
text: 'Сообщение успешно отправлено',
type: 'success',
layout: 'topRight',
timeout: 3000
}).show();
Ключевые параметры:
text — текст уведомления.type — тип уведомления (alert,
success, error, warning,
info).layout — позиция на экране (top,
topLeft, topRight, bottom,
bottomLeft, bottomRight,
center).timeout — время отображения в миллисекундах. Установка
false делает уведомление постоянным.theme — визуальная тема уведомления
(metroui, mint, relax и
др.).Замещение в Noty — это механизм, который позволяет управлять количеством уведомлений на экране и их последовательностью. Если включена логика замещения, новое уведомление может заменить старое или объединиться с ним по определённым правилам.
Для реализации замещения используется параметр queue и
методы управления очередью уведомлений:
Noty.overrideDefaults({
queue: 'global', // Все уведомления используют одну глобальную очередь
maxVisible: 3 // Ограничение на количество видимых уведомлений
});
queue — позволяет сгруппировать уведомления в отдельные
очереди. Замещение происходит только в рамках одной очереди.maxVisible — максимальное количество уведомлений,
одновременно отображаемых на экране. Если новое уведомление создается
при полном лимите, старейшее скрывается автоматически.id можно идентифицировать уведомления и заменить
существующее уведомление новым, если id совпадает:new Noty({
text: 'Обновление данных...',
type: 'info',
id: 'update-noty',
timeout: 2000
}).show();
// При повторном вызове с таким же id старое уведомление заменяется новым
new Noty({
text: 'Данные успешно обновлены!',
type: 'success',
id: 'update-noty',
timeout: 2000
}).show();
close() позволяет закрыть уведомление программно:const myNoty = new Noty({
text: 'Процесс выполнения...',
type: 'warning',
timeout: false
}).show();
myNoty.close(); // Уведомление исчезнет по вызову
Noty предоставляет несколько событий, позволяющих гибко управлять уведомлениями и их замещением:
onShow — срабатывает при отображении уведомления.onClose — вызывается при закрытии уведомления.onClick — событие клика по уведомлению.Пример использования событий для замещения:
const queue = 'updateQueue';
function showUpdateNoty(message) {
new Noty({
text: message,
type: 'info',
id: 'update',
queue: queue,
maxVisible: 1,
timeout: 2000,
callbacks: {
onClose: function() {
console.log('Уведомление закрыто');
}
}
}).show();
}
showUpdateNoty('Начало обновления данных...');
showUpdateNoty('Обновление завершено');
В этом примере уведомление с id='update' заменяет
предыдущее, благодаря идентификатору и ограничению
maxVisible: 1.
Для сложных сценариев можно использовать комбинацию:
killer: true — уничтожает все текущие уведомления при
показе нового.addClass и animation — кастомные классы и
анимации для выделения замещаемых уведомлений.new Noty({
text: 'Важное сообщение!',
type: 'alert',
killer: true, // удаляет все текущие уведомления
layout: 'topRight',
timeout: 5000,
animation: {
open: 'animated bounceInRight',
close: 'animated bounceOutRight'
}
}).show();
id для идентификации
уведомлений, которые могут заменяться.maxVisible, чтобы интерфейс оставался
читаемым.killer: true.onShow,
onClose) для логики последовательного отображения
уведомлений.Эта структура позволяет создавать динамичные интерфейсы с гибкой заменой уведомлений, контролировать их видимость и обеспечивать пользователю актуальную информацию без перегрузки экрана.