Toastify — это легкая и простая в использовании библиотека для отображения уведомлений (toasts) на веб-страницах с использованием JavaScript. Основная идея состоит в том, чтобы создать всплывающее сообщение с минимальным кодом, управляемым через объектные настройки.
Для подключения Toastify достаточно включить скрипт через CDN или импортировать библиотеку через npm/yarn:
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/toastify-js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/toastify-js/src/toastify.min.css">
или через пакетный менеджер:
npm install toastify-js
import Toastify from 'toastify-js';
import "toastify-js/src/toastify.css";
После подключения библиотека предоставляет функцию
Toastify() для создания уведомлений с настраиваемыми
параметрами.
Базовая структура уведомления включает текст и опции отображения:
Toastify({
text: "Привет! Это уведомление Toastify",
duration: 3000, // продолжительность отображения в миллисекундах
gravity: "top", // "top" или "bottom"
position: "right", // "left", "center", "right"
}).showToast();
Ключевые моменты:
text — текст уведомления.duration — время жизни уведомления.gravity и position — положение на
экране.showToast() запускает отображение
уведомления.Toastify предоставляет возможности управлять фокусом и взаимодействием пользователя с уведомлением. Эти функции полезны для UX, когда уведомление должно быть интерактивным или реагировать на действия пользователя.
По умолчанию уведомления исчезают после времени, указанного в
duration. Чтобы сделать уведомление устойчивым к закрытию
при наведении курсора, используется stopOnFocus:
Toastify({
text: "Наведи на меня, чтобы задержать",
duration: 5000,
stopOnFocus: true, // при наведении уведомление не исчезает
}).showToast();
stopOnFocus: true — при наведении мыши таймер
исчезновения приостанавливается.Можно использовать onClick для управления фокусом и
выполнением действий:
Toastify({
text: "Нажми меня для действия",
duration: 4000,
onClick: function() {
alert("Уведомление было нажато");
}
}).showToast();
onClick вызывается при клике на
уведомление.Фокус на визуальной идентификации повышает удобство взаимодействия. Основные опции для кастомизации:
className — добавление CSS-классов для стилизации
уведомления.style — передача объекта с CSS-свойствами для
динамической настройки:Toastify({
text: "Красочное уведомление",
duration: 3000,
style: {
background: "linear-gradient(to right, #00b09b, #96c93d)",
color: "#fff",
fontWeight: "bold"
}
}).showToast();
close — добавление кнопки закрытия:Toastify({
text: "Можно закрыть вручную",
close: true,
duration: 5000
}).showToast();
При включенной кнопке close: true пользователь может
вручную управлять фокусом уведомления и завершить его показ по
желанию.
Toastify поддерживает одновременное отображение нескольких уведомлений. Чтобы управлять фокусом между ними:
position (top-right,
top-left, bottom-right,
bottom-left).duration и
stopOnFocus.const messages = ["Первое уведомление", "Второе уведомление", "Третье уведомление"];
messages.forEach(msg => {
Toastify({
text: msg,
duration: 4000,
gravity: "top",
position: "right",
stopOnFocus: true
}).showToast();
});
Можно создать собственный контейнер для уведомлений, что удобно для сложного UX с кастомным управлением фокусом:
const container = document.createElement("div");
container.id = "toast-container";
document.body.appendChild(container);
Toastify({
text: "Уведомление в кастомном контейнере",
duration: 4000,
gravity: "top",
position: "center",
node: container
}).showToast();
node позволяет указать HTML-элемент для
рендеринга уведомления.Для продвинутого управления фокусом можно использовать ссылки на объекты уведомлений:
const toast = Toastify({
text: "Динамическое управление",
duration: 10000,
stopOnFocus: true
});
toast.showToast();
// Позднее можно программно закрыть уведомление
setTimeout(() => toast.hideToast(), 5000);
hideToast() завершает уведомление в любой
момент.Эти возможности делают Toastify гибким инструментом для управления уведомлениями, особенно в случаях, когда важна интерактивность, задержка исчезновения при фокусе и контроль последовательности уведомлений.
Все вышеописанные функции можно комбинировать для создания сложных UX-сценариев, где пользовательский фокус и реакция на действия играют ключевую роль.