Для начала работы с 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 подключение в проекте на JavaScript выглядит следующим образом:
import Toastify from 'toastify-js'
import "toastify-js/src/toastify.css"
Создание уведомления осуществляется с помощью функции
Toastify() с передачей объекта настроек:
Toastify({
text: "Сообщение уведомления",
duration: 3000, // время отображения в миллисекундах
close: true, // добавляет кнопку закрытия
gravity: "top", // положение: top или bottom
position: "right", // положение по горизонтали: left, center, right
backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", // фон уведомления
stopOnFocus: true, // останавливает исчезновение при наведении курсора
}).showToast();
Ключевые параметры:
text – текст уведомления. Может содержать HTML.duration – продолжительность отображения. Значение 0
оставляет уведомление до закрытия вручную.close – добавляет крестик для закрытия.gravity и position – определяют
расположение на экране.backgroundColor – цвет или градиент фона.stopOnFocus – при наведении мыши уведомление не
исчезает.Toastify позволяет полностью кастомизировать стиль уведомления:
Toastify({
text: "Градиентное уведомление",
backgroundColor: "linear-gradient(to right, #ff6a00, #ee0979)"
}).showToast();
Toastify({
text: "Кастомный стиль",
className: "custom-toast"
}).showToast();
.custom-toast {
font-weight: bold;
border-radius: 10px;
padding: 16px 24px;
}
Toastify({
node: document.createElement("div").appendChild(
Object.assign(document.createElement("span"), { innerHTML: "<strong>Важно!</strong> Новое уведомление" })
)
}).showToast();
Кнопки действий внутри уведомлений:
Для добавления интерактивных элементов используется параметр
node, который позволяет передать HTML-элемент с
кнопкой:
const toastNode = document.createElement("div");
toastNode.innerHTML = 'Сообщение <button id="action-btn">Действие</button>';
Toastify({
node: toastNode,
duration: 5000
}).showToast();
document.getElementById("action-btn").addEventListener("click", () => {
alert("Кнопка нажата!");
});
События Toastify:
onClick – срабатывает при клике на уведомление.onClose – срабатывает при закрытии уведомления.Toastify({
text: "Кликни на меня",
duration: 5000,
onClick: () => console.log("Уведомление было нажато"),
onClose: () => console.log("Уведомление закрыто")
}).showToast();
Управление видимостью уведомлений:
duration: 0 делает уведомление постоянным до
закрытия..hideToast():const toast = Toastify({ text: "Закрытие вручную", duration: 0 }).showToast();
setTimeout(() => toast.hideToast(), 3000);
Toastify позволяет создавать несколько уведомлений одновременно, они
будут располагаться друг под другом в зависимости от параметров
gravity и position. Чтобы управлять порядком
отображения, можно использовать массив или таймеры:
const messages = ["Первое", "Второе", "Третье"];
messages.forEach((msg, index) => {
setTimeout(() => {
Toastify({ text: msg, duration: 2000 }).showToast();
}, index * 500);
});
Toastify({
text: "Остановить при наведении",
stopOnFocus: true
}).showToast();
.toastify {
width: 90%;
max-width: 350px;
}
Toastify хорошо сочетается с библиотеками UI, такими как
React, Vue, или
jQuery, через создание DOM-элементов и передачу их
через параметр node. Для React удобно создавать
компонент-обертку, который управляет уведомлениями через состояние.
Toastify сочетает в себе простоту использования и гибкость кастомизации, предоставляя возможность создавать полностью интерактивные уведомления с кнопками, обработчиками событий и адаптивным внешним видом, что делает её мощным инструментом для динамических веб-интерфейсов.