Для работы с библиотекой Toastify необходимо подключить её к проекту. Существует два основных способа: через CDN и через менеджер пакетов npm.
Через CDN:
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/toastify-js/src/toastify.min.css">
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/toastify-js"></script>
Через npm:
npm install toastify-js
После установки через npm библиотеку можно импортировать в проект:
import Toastify from 'toastify-js';
import "toastify-js/src/toastify.css";
Для создания простого уведомления используется функция
Toastify(). В качестве обязательного параметра указывается
объект с конфигурацией:
Toastify({
text: "Событие успешно выполнено",
duration: 3000, // Время отображения в миллисекундах
}).showToast();
Ключевые параметры:
text — текст уведомления.duration — продолжительность отображения уведомления
(по умолчанию 3000 мс).destination — URL, по которому произойдёт переход при
клике на уведомление.close — отображение кнопки закрытия (true
или false).gravity — позиция уведомления по вертикали
("top" или "bottom").position — позиция уведомления по горизонтали
("left", "center", "right").style — объект CSS-стилей для кастомизации
уведомления.Toastify позволяет полностью кастомизировать внешний вид уведомления
через свойство style. Например, можно изменить цвет фона,
шрифт и бордер:
Toastify({
text: "Ошибка при сохранении данных",
duration: 5000,
close: true,
gravity: "top",
position: "right",
style: {
background: "linear-gradient(to right, #ff5f6d, #ffc371)",
color: "#fff",
fontWeight: "bold",
borderRadius: "8px",
boxShadow: "0 4px 6px rgba(0,0,0,0.1)"
}
}).showToast();
Также можно использовать классические CSS-классы для единого оформления всех уведомлений:
Toastify({
text: "Данные обновлены",
className: "my-toast",
}).showToast();
.my-toast {
background-color: #4caf50;
color: white;
font-size: 14px;
border-radius: 6px;
}
Для логирования событий важно не только отображение, но и поведение уведомлений. Ключевые параметры для управления:
close — позволяет пользователю закрыть уведомление
вручную.duration — если установлено в 0,
уведомление не исчезает автоматически.stopOnFocus — при значении true
уведомление не исчезает, пока на него наведён курсор.callback — функция обратного вызова, которая
срабатывает после закрытия уведомления.Пример использования:
Toastify({
text: "Процесс завершён",
duration: 4000,
close: true,
stopOnFocus: true,
onClick: function() {
console.log("Пользователь кликнул на уведомление");
},
callback: function() {
console.log("Уведомление закрыто");
}
}).showToast();
Для отслеживания пользовательских действий или системных событий
можно использовать методы обратного вызова onClick и
callback. Это удобно для создания журналов действий или
уведомлений об ошибках:
function logEvent(message) {
console.log(new Date().toISOString(), message);
}
Toastify({
text: "Файл загружен",
duration: 3000,
onClick: () => logEvent("Пользователь кликнул по уведомлению о загрузке"),
callback: () => logEvent("Уведомление о загрузке исчезло")
}).showToast();
Для интеграции с сервером можно отправлять события через fetch или WebSocket:
Toastify({
text: "Данные отправлены на сервер",
duration: 3000,
onClick: () => fetch("/log", { method: "POST", body: JSON.stringify({ event: "click" }) }),
callback: () => fetch("/log", { method: "POST", body: JSON.stringify({ event: "close" }) })
}).showToast();
В React уведомления Toastify можно использовать через импорт и вызов функции в обработчиках событий:
import Toastify from 'toastify-js';
import "toastify-js/src/toastify.css";
function handleSave() {
Toastify({
text: "Сохранение прошло успешно",
duration: 3000
}).showToast();
}
В Vue использование аналогично:
methods: {
notify() {
Toastify({
text: "Элемент добавлен",
duration: 2500
}).showToast();
}
}
Toastify поддерживает базовые анимации появления и скрытия, а также гибкую настройку позиции:
gravity: "top" | "bottom" — верх или низ экрана.position: "left" | "center" | "right" — горизонтальное
расположение.className:.toast-slide {
transform: translateY(-50px);
transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
}
.toast-slide.show {
transform: translateY(0);
opacity: 1;
}
.toast-slide.hide {
transform: translateY(-50px);
opacity: 0;
}
И подключение к уведомлению:
Toastify({
text: "Сообщение с анимацией",
className: "toast-slide"
}).showToast();
Для логирования событий важно различать типы уведомлений:
function showError(message) {
Toastify({
text: message,
duration: 5000,
style: { background: "#f44336", color: "#fff" }
}).showToast();
}
function showWarning(message) {
Toastify({
text: message,
duration: 4000,
style: { background: "#ff9800", color: "#fff" }
}).showToast();
}
function showSuccess(message) {
Toastify({
text: message,
duration: 3000,
style: { background: "#4caf50", color: "#fff" }
}).showToast();
}
Такое разделение позволяет визуально выделять критические события, предупреждения и успешные действия, облегчая мониторинг логов и состояния приложения.