Noty — это библиотека JavaScript для создания настраиваемых
уведомлений. Она позволяет выводить сообщения различного типа
(информационные, предупреждения, ошибки, успехи) и управлять их внешним
видом, анимацией и временем отображения. Для создания уведомления
используется объект конфигурации с ключевыми параметрами, такими как
text, type, layout,
timeout и animation.
new Noty({
text: 'Это уведомление',
type: 'success',
layout: 'topRight',
timeout: 3000,
animation: {
open: 'animated bounceInRight',
close: 'animated bounceOutRight'
}
}).show();
text — основной текст уведомления, может содержать
HTML-разметку.type — тип уведомления: alert,
success, error, warning,
info.layout — позиция на экране: top,
topLeft, topRight, bottom,
bottomLeft, bottomRight,
center.timeout — время в миллисекундах до автоматического
скрытия уведомления; false отключает автозакрытие.animation — объект с классами для анимации появления
(open) и скрытия (close).Для отображения многострочного текста можно использовать как
стандартные HTML-теги, так и символы переноса строки. Noty поддерживает
интерпретацию HTML внутри свойства text.
<br> для переносовnew Noty({
text: 'Первая строка<br>Вторая строка<br>Третья строка',
type: 'info',
layout: 'topRight',
timeout: 5000
}).show();
Каждый <br> создаёт новую строку в уведомлении.
Этот подход удобен, если текст заранее известен и статичен.
Если текст динамический, проще использовать шаблонные строки:
const lines = ['Первая строка', 'Вторая строка', 'Третья строка'];
new Noty({
text: `${lines.join('<br>')}`,
type: 'warning',
layout: 'bottomLeft',
timeout: 4000
}).show();
Метод join('<br>') объединяет массив строк с
HTML-переносом между элементами. Это позволяет формировать уведомления
из данных, полученных из API или форм.
Для точной настройки внешнего вида можно использовать CSS. Noty
позволяет задавать классы через theme или через стандартные
стили:
new Noty({
text: '<div class="custom-text">Первая строка<br>Вторая строка</div>',
type: 'alert',
theme: 'metroui',
layout: 'center'
}).show();
.custom-text {
font-size: 16px;
line-height: 1.6;
color: #333;
white-space: pre-line;
}
white-space: pre-line позволяет интерпретировать
переносы строк, если текст подставляется через JavaScript с
\n:
const message = "Первая строка\nВторая строка\nТретья строка";
new Noty({
text: message.replace(/\n/g, '<br>'),
type: 'success'
}).show();
Noty позволяет создавать уведомления с более сложной структурой — списки, таблицы, ссылки, кнопки:
new Noty({
text: `
<strong>Список задач:</strong>
<ul>
<li>Задача 1</li>
<li>Задача 2</li>
<li>Задача 3</li>
</ul>
`,
type: 'info',
layout: 'topRight',
timeout: 6000
}).show();
Можно добавлять интерактивные элементы, например, кнопки для подтверждения действий:
new Noty({
text: 'Вы хотите удалить элемент?',
type: 'warning',
layout: 'topCenter',
buttons: [
Noty.button('Да', 'btn btn-success', function () {
console.log('Элемент удален');
}),
Noty.button('Нет', 'btn btn-danger', function (noty) {
noty.close();
})
]
}).show();
Если текст слишком длинный, Noty автоматически расширяет уведомление. Для ограничения высоты и добавления прокрутки можно использовать CSS:
.noty_body {
max-height: 150px;
overflow-y: auto;
}
Это позволяет уведомлению оставаться компактным, даже если контент многострочный и содержит большие блоки информации.
Noty поддерживает изменение текста уведомления после его создания:
const n = new Noty({
text: 'Инициализация...',
type: 'info',
timeout: false
}).show();
setTimeout(() => {
n.setText('Загрузка завершена<br>Готово к работе');
n.setType('success');
}, 3000);
Использование setText и setType позволяет
обновлять уведомления в реальном времени, сохраняя позицию и стиль.
Многострочный текст в Noty легко реализуется через HTML-теги, шаблонные строки, динамическое формирование данных и CSS-стили. Библиотека обеспечивает гибкость в управлении контентом, визуальными эффектами и интерактивными элементами уведомлений. Это делает Noty мощным инструментом для построения информативных и настраиваемых пользовательских сообщений в веб-приложениях.