iziToast — это легкая библиотека для уведомлений в JavaScript, которая активно развивается. При переходе между версиями могут возникать изменения в API, влияющие на синтаксис вызова, доступные опции и обработку событий. Рассмотрим ключевые изменения и новые возможности, которые следует учитывать при обновлении.
В ранних версиях iziToast уведомления создавались через простую
функцию iziToast.show({ ... }), где объект содержал все
параметры. В новых версиях появилась поддержка отдельных типов
уведомлений через методы:
// Старый синтаксис
iziToast.show({
title: 'Пример',
message: 'Сообщение'
});
// Новый синтаксис
iziToast.success({
title: 'Успех',
message: 'Сообщение успешно отправлено'
});
iziToast.error({
title: 'Ошибка',
message: 'Произошла ошибка'
});
Ключевой момент: новые методы success,
error, info, warning являются
удобной оберткой над универсальным show, но при этом имеют
стандартные стили и иконки. Для кастомных типов уведомлений по-прежнему
можно использовать show.
Ранее позиция задавалась через параметр position с
простыми значениями: "topRight", "bottomLeft"
и т.д. В новых версиях поддерживаются расширенные варианты, включая
выравнивание по горизонтали и вертикали:
iziToast.show({
title: 'Информация',
message: 'Сообщение с точным позиционированием',
position: 'topCenter', // стандартные значения
layout: 2 // новая опция для размещения нескольких уведомлений
});
Новая опция layout позволяет управлять
порядком расположения уведомлений: горизонтально или вертикально, что
особенно полезно для панели уведомлений с несколькими элементами.
Ранее анимации задавались через transitionIn и
transitionOut. В последних версиях добавлена возможность
указания CSS-классов для кастомной анимации:
iziToast.show({
title: 'Анимация',
message: 'Пользовательская анимация',
animateInside: true,
transitionIn: 'fadeInDown',
transitionOut: 'fadeOutUp',
transitionInMobile: 'fadeIn',
transitionOutMobile: 'fadeOut'
});
Ключевой момент: появились отдельные параметры для
мобильных устройств (transitionInMobile,
transitionOutMobile), что позволяет создавать адаптивные
уведомления.
Ранее для автоматического закрытия использовался параметр
timeout. В новых версиях добавлена возможность отключать
автозакрытие и управлять паузой при наведении мыши:
iziToast.show({
title: 'Тайм-аут',
message: 'Уведомление не закроется автоматически',
timeout: false,
pauseOnHover: true
});
Изменение: timeout: false полностью
блокирует автозакрытие, а pauseOnHover позволяет
пользователю читать длинные уведомления без спешки.
В новых версиях iziToast расширена система событий:
onOpening — вызывается перед появлением
уведомленияonOpened — после появленияonClosing — перед закрытиемonClosed — после закрытияonClick — по клику на уведомлениеiziToast.show({
title: 'События',
message: 'Пример использования событий',
onOpening: function(instance, toast) {
console.log('Уведомление открывается');
},
onClick: function(instance, toast) {
console.log('Нажатие на уведомление');
}
});
Ключевой момент: события теперь поддерживают два параметра — экземпляр iziToast и DOM-элемент уведомления, что упрощает интеграцию с динамическими интерфейсами.
Ранее для добавления кнопок использовался параметр
buttons с массивом функций. В последних версиях добавлен
более гибкий синтаксис с возможностью задавать текст, классы и
обработчики событий:
iziToast.show({
title: 'Кнопки',
message: 'Пример кастомных кнопок',
buttons: [
['<button>OK</button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
}],
['<button>Отмена</button>', function (instance, toast) {
console.log('Отмена нажата');
}]
]
});
Изменение: кнопки теперь могут быть полностью HTML-элементами, что позволяет использовать иконки и стили, не ограничиваясь стандартными возможностями библиотеки.
В новых версиях iziToast появилась поддержка вставки уведомлений в конкретный контейнер:
iziToast.show({
title: 'Контейнер',
message: 'Уведомление внутри div',
appendTo: '#customContainer'
});
Ключевой момент: appendTo позволяет
интегрировать уведомления в сложные UI, не создавая глобальные
всплывающие элементы, что упрощает работу в SPA и административных
панелях.
| Параметр | Старый синтаксис | Новый синтаксис / изменения |
|---|---|---|
| Вызов уведомления | iziToast.show({...}) |
iziToast.success({...}),
iziToast.error({...}) |
| Позиция | position: "topRight" |
position: "topCenter", layout: 2 |
| Анимации | transitionIn, transitionOut |
Добавлены transitionInMobile,
animateInside |
| Тайм-аут | timeout: 5000 |
timeout: false, pauseOnHover: true |
| События | Ограниченные | onOpening, onOpened,
onClosing, onClosed, onClick |
| Кнопки | Простые функции | HTML-кнопки с кастомными классами и обработчиками |
| Контейнер | Всегда body | appendTo: '#customContainer' |
Эти изменения делают iziToast более гибким и удобным для современных интерфейсов, но требуют внимательного подхода при обновлении старого кода.