Для работы с Toastify необходимо подключить библиотеку к проекту. Наиболее удобные способы — через CDN или через менеджер пакетов npm/yarn.
Через CDN:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/toastify-js/src/toastify.min.css">
<script src="https://cdn.jsdelivr.net/npm/toastify-js"></script>
Через npm:
npm install toastify-js
После установки можно импортировать библиотеку в проект:
import Toastify from 'toastify-js';
import "toastify-js/src/toastify.css";
Базовый синтаксис создания уведомления очень прост:
Toastify({
text: "Привет! Это уведомление",
duration: 3000
}).showToast();
Пояснение ключевых параметров:
text — текст сообщения.duration — время отображения уведомления в
миллисекундах. Если не указано, по умолчанию 3000 мс.gravity — положение уведомления по вертикали
("top" или "bottom").position — положение по горизонтали
("left", "center", "right").Для изменения стиля уведомления можно использовать несколько параметров:
Toastify({
text: "Успешная операция",
duration: 4000,
gravity: "top",
position: "right",
backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)",
stopOnFocus: true,
close: true
}).showToast();
Ключевые опции:
backgroundColor — цвет или градиент фона.stopOnFocus — при наведении курсора на уведомление его
таймер приостанавливается.close — отображение кнопки закрытия.Toastify поддерживает функции обратного вызова при клике на уведомление или при его закрытии.
Toastify({
text: "Нажми на меня",
duration: 5000,
onClick: function() {
console.log("Уведомление кликнуто");
},
callback: function() {
console.log("Уведомление закрыто");
}
}).showToast();
Пояснение:
onClick вызывается при клике на уведомление.callback срабатывает после завершения отображения
уведомления.Для более сложного контента можно использовать HTML внутри уведомления, например, добавлять иконки или ссылки:
Toastify({
node: (() => {
const element = document.createElement("div");
element.innerHTML = '<span style="margin-right: 10px;">✔️</span>Успех!';
return element;
})(),
duration: 4000,
gravity: "top",
position: "center"
}).showToast();
Особенности:
node позволяет передавать DOM-элемент вместо
строки.По умолчанию уведомления Toastify накладываются друг на друга, но можно контролировать их позиционирование:
Toastify({
text: "Первое уведомление",
duration: 3000,
gravity: "top",
position: "right"
}).showToast();
Toastify({
text: "Второе уведомление",
duration: 3000,
gravity: "top",
position: "right"
}).showToast();
Для реализации очереди уведомлений необходимо управлять временем их показа или использовать сторонние обёртки.
Toastify поддерживает базовые анимации появления и исчезновения через CSS. Для полной кастомизации можно использовать свои классы:
Toastify({
text: "Кастомное уведомление",
className: "my-toast",
duration: 3000
}).showToast();
.my-toast {
font-weight: bold;
color: white;
background-color: #ff6f61;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
duration — время отображения уведомления, 0 делает его
постоянным до ручного закрытия.close — добавляет крестик для закрытия
уведомления.stopOnFocus — при наведении курсора уведомление не
исчезает.offset — сдвиг уведомления по вертикали и
горизонтали:offset: {
x: 50, // смещение по горизонтали
y: 100 // смещение по вертикали
}
Toastify легко интегрируется с любыми фреймворками: React, Vue, Angular. В React, например, можно использовать его внутри useEffect для уведомления после события:
import Toastify from 'toastify-js';
useEffect(() => {
Toastify({
text: "Данные успешно загружены",
duration: 3000,
gravity: "top",
position: "right"
}).showToast();
}, []);
stopOnFocus и close для
улучшения пользовательского опыта.Toastify предоставляет простой и гибкий способ отображения уведомлений в веб-приложениях, поддерживает кастомизацию, интеграцию с фреймворками и позволяет контролировать поведение уведомлений через обширный набор параметров.