Для использования библиотеки 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
После установки через npm подключение происходит через импорт:
import Toastify from 'toastify-js';
import "toastify-js/src/toastify.css";
Основной метод библиотеки — Toastify(). Его вызов
возвращает объект уведомления, который можно показать с помощью метода
showToast().
Toastify({
text: "Простое уведомление",
}).showToast();
Ключевые параметры:
text — текст уведомления.duration — время отображения в миллисекундах (по
умолчанию 3000).gravity — положение по вертикали ("top"
или "bottom").position — положение по горизонтали
("left", "center", "right").style — объект с CSS-стилями.className — добавление CSS-класса для
кастомизации.Пример с кастомным стилем:
Toastify({
text: "Стильное уведомление",
duration: 4000,
gravity: "top",
position: "right",
style: {
background: "linear-gradient(to right, #00b09b, #96c93d)",
color: "#fff",
fontWeight: "bold"
}
}).showToast();
Toastify позволяет добавлять обработчики событий, например, по клику на уведомление:
Toastify({
text: "Нажмите для действия",
duration: 5000,
close: true,
onClick: function() {
console.log("Уведомление было нажато");
}
}).showToast();
Особенности параметров:
close: true добавляет кнопку закрытия уведомления.onClick срабатывает при клике на уведомление.callback после закрытия
уведомления через кнопку.Параметры gravity и position позволяют
гибко управлять расположением. Доступны следующие варианты:
| Параметр | Возможные значения | Описание |
|---|---|---|
| gravity | “top”, “bottom” | Вертикальное положение уведомления |
| position | “left”, “center”, “right” | Горизонтальное положение уведомления |
Пример:
Toastify({
text: "Уведомление в левом нижнем углу",
gravity: "bottom",
position: "left",
duration: 3000
}).showToast();
По умолчанию уведомления закрываются через 3 секунды. Время можно
изменить через duration:
Toastify({
text: "Уведомление с длительным показом",
duration: 10000
}).showToast();
Для уведомлений без автоматического закрытия используется значение
duration: -1:
Toastify({
text: "Закройте меня вручную",
duration: -1,
close: true
}).showToast();
style и className позволяют полностью
управлять стилем уведомления. Можно использовать CSS-классы для
глобального дизайна и inline-стили для уникальных случаев.
Пример с CSS-классом:
.my-toast {
background-color: #ff6347;
color: #fff;
font-size: 16px;
border-radius: 8px;
}
Toastify({
text: "Уведомление с CSS-классом",
className: "my-toast",
duration: 4000
}).showToast();
Для сложных уведомлений с HTML-разметкой применяется параметр
node. Это позволяет создавать уведомления с кнопками,
ссылками и другими элементами.
const node = document.createElement("div");
node.innerHTML = '<strong>Важно!</strong> <a href="#">Перейти</a>';
Toastify({
node: node,
duration: 5000,
gravity: "top",
position: "center"
}).showToast();
Toastify поддерживает плавное появление и исчезновение уведомлений.
Для этого можно использовать CSS-анимации через className
или style. Пример:
.fade-in {
animation: fadeIn 0.5s ease-in-out;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(-20px); }
to { opacity: 1; transform: translateY(0); }
}
Toastify({
text: "Появление с анимацией",
className: "fade-in",
duration: 3000
}).showToast();
При создании нескольких уведомлений они будут отображаться друг за
другом без наложения, если правильно настроить gravity и
position. Для одновременного показа можно использовать
разные позиции.
Toastify({ text: "Первое уведомление", gravity: "top", position: "left" }).showToast();
Toastify({ text: "Второе уведомление", gravity: "top", position: "right" }).showToast();
Toastify часто используется для уведомлений о действиях пользователя, таких как успешное сохранение данных, ошибки или предупреждения.
function saveData() {
// логика сохранения
Toastify({
text: "Данные успешно сохранены",
backgroundColor: "#4caf50",
duration: 3000
}).showToast();
}
function showError() {
Toastify({
text: "Ошибка при сохранении данных",
backgroundColor: "#f44336",
duration: 5000,
close: true
}).showToast();
}
Можно создавать уведомления на основе динамических данных, например, из API или пользовательских форм:
fetch("/api/notifications")
.then(response => response.json())
.then(data => {
data.forEach(item => {
Toastify({
text: item.message,
duration: 4000,
gravity: "top",
position: "right",
backgroundColor: item.type === "error" ? "#f44336" : "#2196f3"
}).showToast();
});
});
style и
className.