iziToast — это легкая и гибкая библиотека для отображения уведомлений в веб-приложениях. Она позволяет создавать всплывающие сообщения с широкими возможностями кастомизации, управлять их положением, стилем, временем отображения и поведением при взаимодействии пользователя. Для начала работы необходимо подключить библиотеку через CDN или npm:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/izitoast/dist/css/iziToast.min.css">
<script src="https://cdn.jsdelivr.net/npm/izitoast/dist/js/iziToast.min.js"></script>
или через npm:
npm install izitoast
и импортировать в проект:
import iziToast from 'izitoast';
import 'izitoast/dist/css/iziToast.min.css';
После подключения доступны методы для создания уведомлений и управления ими.
Базовый вызов уведомления выглядит так:
iziToast.show({
title: 'Новое сообщение',
message: 'Вы получили новое сообщение от пользователя',
position: 'topRight'
});
Ключевые параметры:
topRight, topLeft, bottomRight,
bottomLeft, topCenter,
bottomCenter).blue,
red, green, yellow или
пользовательский HEX).Пример с кастомизацией:
iziToast.success({
title: 'Сообщение отправлено',
message: 'Ваше сообщение успешно доставлено.',
position: 'bottomRight',
timeout: 3000,
icon: 'fa fa-check',
color: 'green',
progressBar: true
});
iziToast позволяет отслеживать действия пользователя и автоматические события уведомлений через callback-функции:
Пример:
iziToast.info({
title: 'Внимание',
message: 'У вас новое уведомление',
onClick: function () {
console.log('Пользователь открыл уведомление');
},
onClosed: function () {
console.log('Уведомление закрыто');
}
});
iziToast поддерживает управление очередью уведомлений, чтобы они не перекрывали друг друга. По умолчанию уведомления появляются одно за другим, но можно управлять количеством одновременно отображаемых:
iziToast.settings({
timeout: 5000,
maxWidth: 400,
position: 'topRight',
layout: 2 // количество уведомлений в одной линии
});
layout управляет числом уведомлений в ряду, maxWidth — шириной уведомления.
Для реализации уведомлений о новых сообщениях в реальном времени можно использовать сочетание WebSocket, AJAX и iziToast. Пример для WebSocket:
const socket = new WebSocket('wss://example.com/messages');
socket.onmess age = function(event) {
const data = JSON.parse(event.data);
iziToast.show({
title: `Новое сообщение от ${data.sender}`,
message: data.text,
position: 'topRight',
timeout: 7000,
color: 'blue',
icon: 'fa fa-envelope',
progressBar: true,
onClick: function () {
openChatWithUser(data.senderId);
}
});
};
В этом примере каждое новое сообщение вызывает уведомление с динамическим заголовком и текстом. Клик по уведомлению открывает чат с отправителем.
iziToast поддерживает CSS-персонализацию, что позволяет интегрировать уведомления в любой дизайн:
iziToast.show({
title: 'Важное сообщение',
message: 'Требуется внимание!',
color: '#ff5722',
icon: 'fa fa-exclamation-triangle',
theme: 'dark',
position: 'topRight',
progressBarColor: '#ffccbc',
});
light или
dark.Дополнительно можно применять CSS-классы через class или
zindex для контроля порядка слоев и перекрытия с другими
элементами интерфейса.
Для приложений с высокой частотой уведомлений можно использовать методы iziToast.destroy() и iziToast.hide(), чтобы очищать очередь или удалять отдельные уведомления:
// Закрыть все уведомления
iziToast.destroy();
// Закрыть конкретное уведомление
const toastId = iziToast.show({ message: 'Тест' });
iziToast.hide({ id: toastId });
Это позволяет избегать захламления экрана и поддерживать чистый интерфейс даже при поступлении множества сообщений.
iziToast автоматически адаптируется под размеры экрана, но для улучшения мобильного опыта можно использовать:
iziToast.settings({
transitionInMobile: 'fadeInDown',
transitionOutMobile: 'fadeOutUp',
maxWidth: 300
});
Параметры transitionInMobile и transitionOutMobile задают анимации для смартфонов, а maxWidth ограничивает ширину уведомления для компактного отображения.
iziToast обеспечивает комплексное решение для уведомлений в реальном времени: гибкая кастомизация, обработка событий, управление очередью и адаптивность под мобильные устройства делают библиотеку идеальной для уведомлений о новых сообщениях. Правильная интеграция с WebSocket или AJAX позволяет динамически информировать пользователя без перегрузки интерфейса.