Toastify — это легковесная библиотека для отображения уведомлений в веб-приложениях на JavaScript. Помимо базового функционала, она позволяет детально настраивать взаимодействие с уведомлениями, включая поддержку тач-событий на мобильных устройствах и сенсорных экранах.
Для использования Toastify необходимо подключить библиотеку через CDN или пакетный менеджер:
<!-- CDN -->
<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({
text: "Уведомление успешно отображено",
duration: 3000
}).showToast();
Ключевые параметры:
text — текст уведомления;duration — время отображения в миллисекундах;gravity — положение по вертикали ("top"
или "bottom");position — положение по горизонтали
("left", "center", "right").Toastify позволяет управлять пользовательским взаимодействием с уведомлениями через тач-события:
onClick для мобильных
устройств Позволяет реагировать на тап пользователя.Toastify({
text: "Нажмите на уведомление",
duration: 5000,
onClick: function() {
console.log("Уведомление было нажато");
}
}).showToast();
touchstart, touchmove и
touchend.const toast = Toastify({
text: "Смахните для закрытия",
duration: -1, // -1 означает постоянное отображение
}).showToast();
let startX = 0;
let currentX = 0;
let threshold = 100; // минимальное смещение для закрытия
toast.addEventListener("touchstart", (e) => {
startX = e.touches[0].clientX;
});
toast.addEventListener("touchmove", (e) => {
currentX = e.touches[0].clientX;
toast.style.transform = `translateX(${currentX - startX}px)`;
});
toast.addEventListener("touchend", () => {
if (Math.abs(currentX - startX) > threshold) {
toast.remove();
} else {
toast.style.transform = `translateX(0)`;
}
});
Особенности:
touchstart фиксирует начальную позицию пальца;touchmove позволяет динамически перемещать уведомление
по оси X;touchend определяет, превышен ли порог для удаления
уведомления.Для более точной настройки взаимодействия можно задать порог срабатывания и скорость анимации:
let swipeThreshold = 80; // пиксели
let swipeSpeed = 300; // миллисекунды анимации возврата
toast.addEventListener("touchend", () => {
let deltaX = currentX - startX;
if (Math.abs(deltaX) > swipeThreshold) {
toast.style.transition = `transform ${swipeSpeed}ms ease-out, opacity ${swipeSpeed}ms ease-out`;
toast.style.opacity = "0";
toast.style.transform = `translateX(${deltaX > 0 ? 500 : -500}px)`;
setTimeout(() => toast.remove(), swipeSpeed);
} else {
toast.style.transition = `transform ${swipeSpeed}ms ease-out`;
toast.style.transform = "translateX(0)";
}
});
Выводы по настройке тач-событий:
touch-события.Тач-события можно комбинировать с onClick,
duration и close для создания сложных
сценариев:
Toastify({
text: "Уведомление с тач-жестами и кнопкой закрытия",
duration: -1,
close: true,
onClick: function() {
console.log("Клик зарегистрирован");
}
}).showToast();
close: true добавляет крестик для ручного
закрытия;onClick срабатывает только при обычном тапе.duration: -1) до завершения
взаимодействия.Управление тач-событиями в Toastify открывает возможности создания
адаптивного мобильного интерфейса с интуитивными жестами. Правильная
комбинация onClick, кастомных
touch-обработчиков и плавной анимации обеспечивает удобное
взаимодействие и повышает вовлечённость пользователей.