Библиотека Noty позволяет создавать уведомления в веб-приложениях с широкими возможностями кастомизации. Одним из инструментов повышения интерактивности уведомлений является overlay — полупрозрачный фон, который блокирует взаимодействие с основным содержимым страницы и привлекает внимание к уведомлению.
Для активации overlay необходимо использовать параметр
modal при создании уведомления. Его значение по умолчанию —
false. Если задать true, Noty создаст
затемнённый фон, блокирующий доступ к остальной части страницы:
new Noty({
text: 'Важное уведомление!',
type: 'alert',
modal: true,
timeout: 5000
}).show();
Ключевые моменты:
modal: true создаёт overlay, который по умолчанию имеет
фиксированное полупрозрачное затемнение.layout и
theme для достижения необходимого визуального эффекта.Библиотека Noty предоставляет возможность тонкой настройки внешнего
вида overlay через CSS-класс .noty_modal. Можно изменить
цвет фона, прозрачность, добавить анимацию появления:
.noty_modal {
background-color: rgba(0, 0, 0, 0.7);
transition: background-color 0.3s ease;
}
Рекомендации по стилям:
rgba вместо hex, чтобы легко
управлять прозрачностью.transition, чтобы
overlay не появлялся резко.backdrop-filter: blur(4px); для
размытия контента страницы под уведомлением.По умолчанию overlay блокирует взаимодействие с остальной страницей, но нажатие на него не закрывает уведомление. Для изменения поведения необходимо обработать событие клика:
const myNoty = new Noty({
text: 'Нажмите на фон, чтобы закрыть уведомление',
modal: true,
closeWith: ['click']
}).show();
closeWith: ['click'] позволяет закрывать уведомление
при клике на overlay.timeout для автоматического
скрытия через заданный промежуток времени.on('onClick', callback) для реализации сложной
логики.Overlay можно анимировать совместно с уведомлением, используя
CSS-классы анимации, назначаемые через animation:
new Noty({
text: 'Анимированное уведомление с overlay',
modal: true,
animation: {
open: 'animated fadeIn',
close: 'animated fadeOut'
}
}).show();
Overlay создаётся автоматически при modal: true, но
доступ к DOM элементу можно получить для динамической кастомизации:
const n = new Noty({ text: 'Custom overlay', modal: true }).show();
const overlayElement = document.querySelector('.noty_modal');
overlayElement.style.cursor = 'pointer';
overlayElement.addEventListener('click', () => alert('Overlay clicked'));
overflow: hidden на <body>:body.noty_modal_open {
overflow: hidden;
}
modal: true.Overlay идеально сочетается с:
center,
topCenter, bottomCenter для размещения
уведомления в центре экрана.Такое сочетание позволяет создавать полнофункциональные модальные уведомления с кастомной анимацией и поведением overlay, полностью управляемые через Noty.