Библиотека Noty позволяет гибко управлять положением
уведомлений на странице, задавая его через параметр layout.
Значения по умолчанию включают: top, topLeft,
topRight, bottom, bottomLeft,
bottomRight, center, centerLeft,
centerRight. Каждое уведомление создаётся как отдельный
DOM-элемент, добавляемый в контейнер, соответствующий выбранному
расположению.
Параметр layout определяет контейнер, а также влияет на
визуальный поток уведомлений. Например, уведомления в
topRight будут появляться сверху и смещаться вниз, не
перекрывая уже существующие.
new Noty({
text: 'Пример уведомления',
layout: 'topRight',
type: 'success',
timeout: 3000
}).show();
Для вывода уведомлений в разных областях экрана достаточно создать
несколько экземпляров Noty с разными значениями layout.
Библиотека автоматически создаёт отдельные контейнеры для каждой
позиции, что исключает конфликт уведомлений между областями.
new Noty({
text: 'Верхний левый угол',
layout: 'topLeft',
type: 'info'
}).show();
new Noty({
text: 'Нижний правый угол',
layout: 'bottomRight',
type: 'warning'
}).show();
Уведомления, находящиеся в одном контейнере, автоматически
выстраиваются в очередь. Можно контролировать порядок появления с
помощью параметра queue. По умолчанию уведомления
добавляются в конец очереди, но при использовании
queue: 'override' новые уведомления заменяют старые.
new Noty({
text: 'Перезаписываю старое уведомление',
layout: 'topRight',
type: 'alert',
queue: 'override'
}).show();
Noty предоставляет возможность тонкой настройки позиции уведомления
через CSS, а также с помощью параметров theme и
container. Отступы между уведомлениями управляются через
margin контейнера, что позволяет создавать аккуратные
группы уведомлений без наложений.
.noty_container.topRight {
margin-top: 20px;
margin-right: 20px;
}
.noty {
margin-bottom: 10px;
}
Можно комбинировать горизонтальные и вертикальные позиции для
создания нестандартных схем размещения. Например, использование
centerLeft и centerRight позволяет разместить
уведомления симметрично по бокам экрана. Для таких случаев важно
учитывать размеры контейнера, чтобы уведомления не выходили за пределы
видимой области.
new Noty({
text: 'Слева по центру',
layout: 'centerLeft',
type: 'success'
}).show();
new Noty({
text: 'Справа по центру',
layout: 'centerRight',
type: 'success'
}).show();
Для сложных интерфейсов, где уведомления появляются одновременно в
нескольких позициях, важно контролировать время отображения
(timeout) и анимации (animation). Noty
позволяет настраивать вход и выход уведомления через объекты
animation.open и animation.close, а также
задавать индивидуальное время показа для каждой позиции.
new Noty({
text: 'Анимированное уведомление',
layout: 'bottomLeft',
type: 'info',
timeout: 5000,
animation: {
open: 'animated bounceInLeft',
close: 'animated bounceOutLeft'
}
}).show();
Можно создавать уведомления динамически, изменяя их позицию в
зависимости от контекста. Например, ошибки могут появляться справа
сверху, информационные сообщения — слева снизу. Для этого используется
динамическое присваивание layout при создании экземпляра
Noty.
function showNotification(type, message) {
let layout = type === 'error' ? 'topRight' : 'bottomLeft';
new Noty({
text: message,
layout: layout,
type: type,
timeout: 4000
}).show();
}
showNotification('error', 'Произошла ошибка!');
showNotification('info', 'Операция завершена.');
При комбинировании уведомлений важно учитывать пользовательские темы.
Noty поддерживает кастомные темы через CSS. Каждое уведомление можно
адаптировать под конкретный контейнер, задавая разные стили для
topRight, bottomLeft и других позиций. Это
позволяет создавать визуально согласованные интерфейсы с множественными
зонами уведомлений.
.noty.topRight {
background-color: #f0ad4e;
}
.noty.bottomLeft {
background-color: #5bc0de;
}
Такой подход обеспечивает чёткое управление многопозиционными уведомлениями, позволяет комбинировать различные зоны экрана и создавать гибкие, удобные интерфейсы.