Для работы с Toastify в проекте достаточно подключить библиотеку через npm или CDN. Установка через npm выполняется командой:
npm install toastify-js
После установки библиотеку можно импортировать в ваш JavaScript-код:
import Toastify from 'toastify-js';
import "toastify-js/src/toastify.css";
Если используется CDN, достаточно добавить следующие строки в HTML:
<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>
Создание уведомления осуществляется вызовом функции
Toastify(), которой передаётся объект конфигурации:
Toastify({
text: "Пример уведомления",
duration: 3000,
close: true,
gravity: "top",
position: "right",
backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)"
}).showToast();
Ключевые параметры конфигурации:
text — текст уведомления.duration — время отображения в миллисекундах.close — добавляет кнопку закрытия.gravity — вертикальное расположение ("top"
или "bottom").position — горизонтальное расположение
("left", "center", "right").backgroundColor — цвет фона или градиент.Toastify позволяет вставлять HTML-контент, включая изображения, видео
и иконки. Для этого используется параметр node, который
принимает любой DOM-элемент. Пример уведомления с изображением:
const toastContent = document.createElement("div");
toastContent.innerHTML = `
<img src="https://via.placeholder.com/40" alt="icon" style="vertical-align: middle; margin-right: 10px;">
<span>Уведомление с изображением</span>
`;
Toastify({
node: toastContent,
duration: 5000,
gravity: "top",
position: "right",
close: true
}).showToast();
Для вставки видео можно использовать тег <video> с
атрибутами autoplay, muted и
loop:
const videoToast = document.createElement("div");
videoToast.innerHTML = `
<video width="160" height="90" autoplay muted loop>
<source src="video.mp4" type="video/mp4">
Ваш браузер не поддерживает видео.
</video>
<span>Видео уведомление</span>
`;
Toastify({
node: videoToast,
duration: 8000,
gravity: "bottom",
position: "center",
close: true
}).showToast();
Для корректного отображения медиа рекомендуется использовать CSS:
display: flex; — выравнивание элементов по
горизонтали.align-items: center; — вертикальное центрирование.margin и padding — для отступов между
элементами.Пример:
toastContent.style.display = "flex";
toastContent.style.alignItems = "center";
toastContent.querySelector("img").style.marginRight = "10px";
Toastify позволяет добавлять события на DOM-элементы уведомлений. Например, можно сделать кликабельный элемент для запуска видео или открытия ссылки:
toastContent.querySelector("span").addEventListener("click", () => {
window.open("https://example.com", "_blank");
});
Для плавного появления и исчезновения можно использовать CSS-анимации:
.toastify {
transition: transform 0.3s ease, opacity 0.3s ease;
}
Медиа и текст можно комбинировать в едином уведомлении, создавая сложные структуры:
const combinedToast = document.createElement("div");
combinedToast.innerHTML = `
<img src="icon.png" alt="icon" style="margin-right:10px; width:30px;">
<div>
<strong>Заголовок</strong>
<p>Описание уведомления с медиа</p>
</div>
`;
Toastify({
node: combinedToast,
duration: 7000,
gravity: "top",
position: "left",
close: true
}).showToast();
addEventListener.Для одинакового стиля всех уведомлений можно создать функцию-обёртку:
function createMediaToast(node, duration = 5000) {
Toastify({
node: node,
duration: duration,
gravity: "top",
position: "right",
close: true,
stopOnFocus: true
}).showToast();
}
Это упрощает интеграцию медиа-контента и делает код более поддерживаемым.