В библиотеке Noty продолжительность показа уведомления задаётся
параметром timeout. Он определяет время в миллисекундах,
после которого уведомление автоматически закроется.
new Noty({
text: 'Пример уведомления',
type: 'success',
timeout: 3000 // 3 секунды
}).show();
Если timeout установлен в false,
уведомление останется на экране до явного закрытия пользователем или
программным методом .close().
new Noty({
text: 'Закрытие вручную',
timeout: false
}).show();
Разные типы уведомлений требуют различного времени на усвоение
информации. Обычно применяются стандартные типы: alert,
success, warning, error,
information.
success — 2000–3000 мс достаточно для краткой
позитивной информации.error — рекомендуется 4000–6000 мс, чтобы пользователь
успел прочитать важное сообщение о сбое.warning — 3500–5000 мс для предупреждений о возможных
действиях.alert и information — зависят от объёма
текста, часто 3000–5000 мс.Для уведомлений с переменной длиной текста или при необходимости
учитывать внимание пользователя удобно вычислять timeout
динамически:
function calculateTimeout(text) {
const baseTime = 2000;
const extraTimePerWord = 300;
const wordCount = text.split(' ').length;
return baseTime + wordCount * extraTimePerWord;
}
new Noty({
text: 'Длинное уведомление, которое требует больше времени для прочтения',
type: 'information',
timeout: calculateTimeout('Длинное уведомление, которое требует больше времени для прочтения')
}).show();
Такой подход обеспечивает удобство чтения и предотвращает слишком быстрое закрытие уведомлений.
Noty позволяет управлять временем отображения через события
onShow, onClose, onHover,
onClick. Эти события помогают адаптировать поведение
уведомления:
new Noty({
text: 'Наведите на меня',
type: 'alert',
timeout: 4000,
progressBar: true,
callbacks: {
onHover: function() {
this.stop();
},
onMouseLeave: function() {
this.resume();
}
}
}).show();
new Noty({
text: 'Кликните для закрытия',
type: 'success',
timeout: false,
callbacks: {
onClick: function() {
this.close();
}
}
}).show();
На мобильных устройствах экран меньше, и пользователь часто отвлечён.
Оптимальные значения timeout должны быть увеличены на
20–50% по сравнению с десктопной версией:
const isMobile = /Mobi|Android/i.test(navigator.userAgent);
new Noty({
text: 'Сообщение для мобильного пользователя',
type: 'information',
timeout: isMobile ? 5000 : 3000
}).show();
Параметр progressBar создаёт визуальный индикатор
времени до закрытия уведомления. Это повышает воспринимаемость и снижает
стресс от внезапного исчезновения уведомления:
new Noty({
text: 'Прогресс-бар информирует о времени',
type: 'warning',
timeout: 4000,
progressBar: true
}).show();
Прогресс-бар особенно полезен для длительных уведомлений и предупреждений об ошибках.
При выборе времени показа следует учитывать:
Динамическая комбинация этих факторов позволяет настроить
timeout так, чтобы уведомления оставались заметными, но не
раздражали пользователя.
Использование timeout, progressBar, событий
onHover и onClick в сочетании с адаптивным
вычислением времени для разных типов уведомлений создаёт максимально
комфортный UX. Правильное управление временем показа позволяет
уведомлениям выполнять информативную функцию без перегрузки
интерфейса.