В библиотеке Noty параметр container
используется для указания DOM-элемента, в котором будут отображаться
уведомления. Этот параметр определяет контейнер,
который служит родителем для всех создаваемых нотификаций. Контейнер
может быть либо существующим элементом на странице, либо автоматически
созданным библиотекой.
Параметр container может принимать следующие
значения:
new Noty({
text: 'Пример уведомления',
container: '#custom-container'
}).show();
В этом случае уведомление будет добавлено внутрь элемента с
id="custom-container". Если элемент не найден, Noty создаст
стандартный контейнер.
HTMLElement:const customContainer = document.getElementById('custom-container');
new Noty({
text: 'Уведомление в DOM-элементе',
container: customContainer
}).show();
Использование DOM-элемента позволяет избежать поиска элемента через селектор и обеспечивает точный контроль над расположением уведомлений.
Стандартный контейнер Noty создается автоматически и имеет следующие характеристики:
<div>noty_layout_topRight,
noty_layout_bottomLeft и др. в зависимости от параметра
layout.Контейнер можно полностью кастомизировать, присвоив ему собственный класс или добавив дополнительные стили:
#custom-container {
position: fixed;
top: 20px;
right: 20px;
width: 300px;
z-index: 9999;
}
Параметр container тесно связан с layout.
Каждый layout в Noty имеет свои стандартные контейнеры (например,
topRight, bottomLeft). Если
container задан явно, layout игнорирует стандартный
контейнер и помещает уведомления в указанный элемент. Это позволяет:
Noty автоматически создаёт контейнер, если указанный в
container элемент отсутствует. Это позволяет писать код без
обязательной разметки:
new Noty({
text: 'Автоматически созданный контейнер',
layout: 'topCenter',
container: '#missing-container'
}).show();
В этом примере, несмотря на отсутствие элемента с
id="missing-container", библиотека создаст контейнер с этим
идентификатором и корректно вставит уведомление.
const notificationArea = document.createElement('div');
notificationArea.id = 'dynamic-container';
document.body.appendChild(notificationArea);
new Noty({
text: 'Первое уведомление',
type: 'success',
container: notificationArea,
layout: 'topRight',
timeout: 4000
}).show();
new Noty({
text: 'Второе уведомление',
type: 'alert',
container: notificationArea,
layout: 'topRight',
timeout: 4000
}).show();
В этом примере создается динамический контейнер, в который помещаются несколько уведомлений, поддерживая единую область отображения с одинаковыми стилями и положением.
Параметр container обеспечивает гибкий контроль
над размещением уведомлений, позволяя интегрировать Noty в
сложные интерфейсы без изменения глобальных настроек. Он является
ключевым инструментом для кастомизации визуального поведения
уведомлений.