Библиотека iziToast предоставляет стандартные типы
уведомлений: success, error,
warning, info. Однако для сложных приложений
часто требуется создавать собственные типы уведомлений
с уникальным стилем, поведением и визуальными эффектами.
Пользовательские типы позволяют унифицировать интерфейс уведомлений и
адаптировать их под дизайн конкретного проекта.
Функция iziToast.settings() позволяет определить новые
шаблоны уведомлений с уникальными параметрами. Основной подход — это
создание функции-обёртки, которая использует базовый метод
iziToast.show() с предустановленными настройками:
function customNotification(message, title) {
iziToast.show({
title: title || 'Внимание',
message: message,
theme: 'dark',
color: 'purple',
icon: 'fa fa-star',
position: 'topRight',
timeout: 5000,
progressBar: true,
close: true,
animateInside: true,
onOpening: function(instance, toast){
console.log('Уведомление открывается');
},
onClosing: function(instance, toast, closedBy){
console.log('Уведомление закрывается');
}
});
}
Ключевые моменты при создании собственного типа:
title и message — обязательные параметры,
задают текст уведомления.theme может быть light или
dark, влияет на общий стиль.color задаёт цветовую схему блока уведомления. Можно
использовать как стандартные цвета, так и кастомные HEX/RGB.icon позволяет указать иконку, поддерживаются
FontAwesome и Material Icons.position определяет место появления:
topRight, topLeft, bottomRight,
bottomLeft, center.timeout — длительность отображения уведомления в
миллисекундах.progressBar включает или отключает индикатор
времени.animateInside управляет анимацией контента внутри
уведомления.onOpening и onClosing — коллбэки, полезные
для логирования или триггеров других действий.Можно создавать пользовательские типы на основе существующих:
iziToast.successCustom = function(message, title){
iziToast.show({
title: title || 'Успех',
message: message,
color: '#28a745',
icon: 'fa fa-check-circle',
position: 'bottomRight',
timeout: 4000
});
};
iziToast.errorCustom = function(message, title){
iziToast.show({
title: title || 'Ошибка',
message: message,
color: '#dc3545',
icon: 'fa fa-exclamation-circle',
position: 'bottomLeft',
timeout: 6000,
overlay: true
});
};
Такой подход позволяет унифицировать вызовы уведомлений, сохранив возможность тонкой настройки для каждого случая.
Использование пользовательских CSS-классов позволяет полностью контролировать внешний вид уведомления:
iziToast.show({
title: 'Новость',
message: 'Появилось новое сообщение',
class: 'custom-toast-news',
position: 'topRight'
});
CSS:
.custom-toast-news {
background: linear-gradient(45deg, #6a11cb, #2575fc);
color: #fff;
border-radius: 12px;
font-weight: bold;
}
.custom-toast-news .iziToast-icon {
font-size: 20px;
}
Использование кастомных классов позволяет:
iziToast поддерживает HTML-контент внутри
уведомлений:
iziToast.show({
title: 'Событие',
message: '<strong>Важное сообщение:</strong> обновление завершено',
position: 'topRight',
close: false,
overlay: true,
timeout: false,
layout: 2,
balloon: true
});
Особенности:
layout регулирует структуру уведомления (1 или 2
колонки).balloon создаёт визуальный эффект «пузыря».Для сложных интерфейсов можно создавать адаптивные уведомления, меняя их параметры в зависимости от контекста:
function notify(message, type){
let settings = {
message: message,
position: 'topRight',
timeout: 5000
};
switch(type){
case 'success':
settings.color = '#28a745';
settings.icon = 'fa fa-check';
break;
case 'warning':
settings.color = '#ffc107';
settings.icon = 'fa fa-exclamation-triangle';
break;
case 'error':
settings.color = '#dc3545';
settings.icon = 'fa fa-times-circle';
break;
default:
settings.color = '#17a2b8';
settings.icon = 'fa fa-info-circle';
}
iziToast.show(settings);
}
Этот подход позволяет использовать одну функцию для разных сценариев, поддерживая консистентный дизайн уведомлений.
Для приложений с большим количеством уведомлений важно управлять стеком уведомлений:
maxWidth ограничивает ширину.zindex позволяет устанавливать порядок
отображения.layout и position помогают расположить
уведомления компактно.iziToast.destroy().Пример:
iziToast.show({
title: 'Событие',
message: 'Это уведомление с максимальной шириной 400px',
maxWidth: 400,
position: 'topRight',
timeout: 4000
});
Использование пользовательских типов уведомлений в iziToast позволяет создавать гибкие, стилизованные и адаптивные сообщения, которые полностью соответствуют требованиям проекта и обеспечивают удобство для пользователей.