Для использования Toastify необходимо сначала подключить библиотеку. Существует два способа интеграции: через CDN или через установку npm.
Через CDN достаточно добавить ссылки в HTML:
При подключении через npm выполняется установка:
npm install toastify-js
И подключение в коде Jav * aScript:
import Toastify from 'toastify-js';
import "toastify-js/src/toastify.css";
Это позволяет использовать Toastify в современных сборщиках типа Webpack или Vite.
Создание простого уведомления выполняется вызовом функции
Toastify() с объектом конфигурации:
Toastify({
text: "Привет! Это уведомление.",
duration: 3000
}).showToast();
Ключевые параметры:
text — текст уведомления. Обязательный параметр.duration — длительность отображения в миллисекундах (по
умолчанию 3000).close — отображение кнопки закрытия
(true/false).gravity — положение по вертикали: "top"
или "bottom".position — положение по горизонтали:
"left", "center", "right".Toastify позволяет полностью кастомизировать внешний вид. Для этого
используется параметр style:
Toastify({
text: "Стилизация уведомления",
duration: 4000,
style: {
background: "linear-gradient(to right, #00b09b, #96c93d)",
color: "#fff",
fontSize: "16px",
borderRadius: "8px",
boxShadow: "0 4px 12px rgba(0,0,0,0.2)"
}
}).showToast();
Можно комбинировать CSS-свойства, включая тени, градиенты и трансформации.
Для обработки кликов на уведомлении используется параметр
onClick:
Toastify({
text: "Нажми меня!",
duration: 5000,
close: true,
onClick: function() {
console.log("Уведомление было кликнуто");
}
}).showToast();
Такое решение полезно для ссылок на страницы, действий в приложении или закрытия уведомления вручную.
Toastify поддерживает вставку HTML с помощью свойства
node. Для более сложного уведомления создаётся элемент
DOM:
const customNode = document.createElement("div");
customNode.innerHTML = `Важно: Проверьте данные`;
Toastify({
node: customNode,
duration: 5000,
gravity: "top",
position: "right"
}).showToast();
Это даёт возможность включать ссылки, изображения и любые элементы HTML без ограничения на текст.
По умолчанию все тосты отображаются отдельно. Для создания эффекта последовательных уведомлений можно использовать массивы и функции:
const messages = ["Событие 1", "Событие 2", "Событие 3"];
messages.forEach((msg, i) => {
setTimeout(() => {
Toastify({ text: msg, duration: 3000 }).showToast();
}, i * 3500);
});
Это позволяет плавно отображать несколько уведомлений с интервалом, предотвращая наложение текста.
В проектах с ES-модулями Toastify можно импортировать и использовать как компонент:
import Toastify from 'toastify-js';
export function showNotification(message, options = {}) {
Toastify({
text: message,
duration: options.duration || 3000,
gravity: options.gravity || "top",
position: options.position || "right",
style: options.style || {}
}).showToast();
}
Такое решение упрощает повторное использование уведомлений и соблюдает принципы модульного кода.
Хотя Toastify не предоставляет методов для явного удаления уведомлений после отображения, их можно контролировать через CSS и JavaScript. Для более сложных сценариев:
const toast = Toastify({
text: "Закрываем через 2 секунды",
duration: 10000,
close: true
});
toast.showToast();
setTimeout(() => {
toast.hideToast(); // скрытие вручную
}, 2000);
Метод hideToast() позволяет управлять видимостью
независимо от таймера duration.
Toastify удобно подключать к различным событиям: формы, кнопки, AJAX-запросы:
document.querySelector("#submitBtn").addEventListener("click", () => {
Toastify({
text: "Данные отправлены",
duration: 3000,
gravity: "bottom",
position: "center",
style: { background: "#007bff" }
}).showToast();
});
Такой подход обеспечивает единый механизм уведомлений для всего интерфейса.