Библиотека Noty в JavaScript предоставляет удобный интерфейс для создания уведомлений на веб-странице. Основной строительный блок — это класс Noty, который инкапсулирует всю логику уведомлений, включая их конфигурацию, отображение, анимацию и жизненный цикл.
Экземпляр класса создается через конструктор:
new Noty(options)
options — объект с ключевыми настройками уведомления:
'alert',
'success', 'error', 'warning',
'info'.'top',
'topLeft', 'topRight', 'bottom',
'bottomLeft', 'bottomRight',
'center'.'mint',
'sunset', 'relax' и другие.open и close, указывающие
функции анимации.Пример создания базового уведомления:
let notification = new Noty({
type: 'success',
text: 'Данные успешно сохранены!',
layout: 'topRight',
timeout: 3000
});
Экземпляр класса предоставляет ряд методов для управления уведомлением:
'onShow', 'onClose',
'onClick' и другие).Пример использования методов:
notification.show();
notification.on('onClose', function() {
console.log('Уведомление закрыто');
});
notification.setText('Обновленный текст уведомления');
Noty реализует жизненный цикл уведомления через события:
События можно использовать для динамического управления уведомлениями, например, для запуска дополнительных функций после закрытия.
Noty строится вокруг нескольких внутренних классов и компонентов:
Каждый из этих компонентов инкапсулирован и не требует прямого обращения. Основной интерфейс взаимодействия — через экземпляр Noty.
Анимации задаются через объект animation в конфигурации:
animation: {
open: 'animated bounceInRight',
close: 'animated bounceOutRight',
easing: 'swing',
speed: 500
}
Noty автоматически управляет очередью через внутренний механизм NotyQueue. Если несколько уведомлений создаются одновременно, они располагаются в контейнерах в порядке добавления. Очередь учитывает позиции и количество уведомлений, чтобы новые элементы не перекрывали существующие.
Хотя основной функционал предоставляется через экземпляры Noty, можно создавать собственные классы, наследуя Noty, чтобы расширять функциональность:
class CustomNoty extends Noty {
constructor(options) {
super(options);
}
highlight() {
this.setType('warning');
this.show();
}
}
let custom = new CustomNoty({ text: 'Внимание!' });
custom.highlight();
Это позволяет интегрировать уведомления с логикой приложения, не изменяя исходный код библиотеки.
Библиотека поддерживает подключение нескольких готовых тем, каждая из
которых содержит стили для разных типов уведомлений. Тема задается через
параметр theme. Также можно создавать собственные
стили, модифицируя классы .noty_type_*,
.noty_bar, .noty_layout_*.
Класс Noty является ядром системы уведомлений, обеспечивая:
Внутренние компоненты, такие как NotyDom, NotyTimer, NotyAnimate и NotyQueue, поддерживают эту функциональность, скрывая детали реализации от конечного пользователя и предоставляя простой и гибкий API.