В библиотеке iziToast функциональность свайпов позволяет пользователям закрывать уведомления жестом, что особенно удобно на мобильных устройствах с сенсорными экранами. Этот механизм реализован через прослушивание событий касания и перемещения по оси X или Y.
Для активации возможности закрытия уведомлений свайпом необходимо
использовать опцию drag при создании уведомления:
iziToast.show({
title: 'Сообщение',
message: 'Это уведомление можно закрыть свайпом',
drag: true
});
drag – булевый параметр, по умолчанию
true в последних версиях iziToast. Если установить
false, уведомление нельзя будет перемещать свайпом.Можно задать конкретное направление свайпа с помощью опции
dragDirection. Доступны следующие значения:
'x' – свайп по горизонтали (влево или вправо)'y' – свайп по вертикали (вверх или вниз)'xy' – свайп по обеим осямПример использования:
iziToast.show({
title: 'Предупреждение',
message: 'Попробуйте свайпнуть вверх или вниз',
drag: true,
dragDirection: 'y'
});
Чувствительность свайпа можно регулировать с помощью опций
dragThreshold и dragHandle:
dragThreshold – минимальное
смещение в пикселях для срабатывания свайпа. Пример:
dragThreshold: 100 означает, что уведомление закроется
только при перемещении на 100px или больше.
dragHandle – селектор внутри
уведомления, который будет служить “ручкой” для свайпа. Если не указан,
свайп доступен по всему уведомлению.
iziToast.show({
title: 'Информация',
message: 'Свайп доступен только по заголовку',
drag: true,
dragHandle: '.iziToast-title'
});
iziToast предоставляет события, которые позволяют отслеживать процесс свайпа:
onOpening – вызывается в момент
открытия уведомления.onClosing – вызывается перед закрытием
уведомления, в том числе при свайпе.onClosed – вызывается после полного
закрытия уведомления.Для свайпов важным является событие onClosing, так как
оно позволяет определить причину закрытия:
iziToast.show({
title: 'Свайп',
message: 'Закройте свайпом',
drag: true,
onClosing: function(instance, toast, closedBy){
if(closedBy === 'drag'){
console.log('Уведомление закрыто свайпом');
}
}
});
При перетаскивании уведомления используются встроенные CSS-анимации для плавного перемещения и исчезновения:
opacity)
и смещается в сторону свайпа (transform: translateX или
translateY).transitionIn и transitionOut или с помощью
пользовательских стилей CSS.Пример кастомной анимации:
iziToast.show({
title: 'Кастомная анимация',
message: 'Свайп с ускорением',
drag: true,
transitionOut: 'fadeOutUp',
transitionOutEasing: 'easeInBack'
});
position
'topRight', 'topLeft',
'bottomRight', 'bottomLeft',
'topCenter' и 'bottomCenter'. Уведомления,
растянутые на всю ширину ('center' с
maxWidth: '100%'), могут вести себя нестабильно.timeout: false и
уведомление заблокировано (pauseOnHover: true может
замедлить реакцию).pointer-events: none;.Свайпы в iziToast обеспечивают интуитивное взаимодействие с уведомлениями, особенно на мобильных устройствах, и при правильной настройке повышают удобство работы с интерфейсом.