Driver.js поддерживает работу с touch-событиями на мобильных и сенсорных устройствах, обеспечивая плавное взаимодействие с интерактивными элементами интерфейса. Touch-события позволяют пользователям перемещаться по шагам подсказок, не прибегая к кликам мыши, что особенно важно для адаптивного дизайна.
Driver.js обрабатывает следующие основные touch-события:
touchstart — срабатывает при касании
экрана. Используется для фиксации начальной позиции касания, определения
активации элемента.touchmove — фиксирует движение пальца
по экрану. В Driver.js применяется для отслеживания попыток скроллинга
или свайпа в пределах элемента подсказки.touchend — фиксирует окончание
касания. Важен для завершения шага подсказки и перехода к
следующему.touchcancel — возникает, когда касание
прерывается системой (например, вызовом уведомления или системной
панелью). Driver.js корректно обрабатывает такие ситуации, чтобы не
нарушить последовательность шагов.Driver.js позволяет настраивать поведение touch-событий через объект конфигурации. Основные параметры:
const driver = new Driver({
allowClose: false, // запрещает закрытие подсказки свайпом
touchTolerance: 15, // чувствительность к смещению пальца (в пикселях)
overlayClickNext: true // переход к следующему шагу при тапе по оверлею
});
allowClose предотвращает случайное
закрытие подсказки при случайном касании.
touchTolerance задает максимальное
смещение пальца, после которого Driver.js решает, что касание — это
попытка перемещения, а не тап.
overlayClickNext позволяет пользователю
продвигаться по шагам без точного нажатия на целевой элемент, что
критично для маленьких экранов.
Driver.js поддерживает свайпы для навигации между шагами. Логика работы:
touchTolerance, выполняется переход.onNext, onPrevious для кастомной логики.Пример подключения свайпа:
driver.on('touchmove', (event) => {
const deltaX = event.changedTouches[0].clientX - startX;
if (deltaX > 50) driver.moveNext();
else if (deltaX < -50) driver.movePrevious();
});
Touch-события работают как с целевым элементом, так и с оверлеем. Для удобства пользователя:
touchTolerance.Для расширенной функциональности можно использовать кастомные обработчики touch-событий:
driver.on('touchstart', (e) => {
console.log('Начало касания:', e.target);
});
driver.on('touchend', (e) => {
if (e.target.matches('.driver-step')) {
console.log('Шаг завершён');
}
});
Это позволяет интегрировать Driver.js с нестандартными интерфейсными компонентами, анимациями или отслеживать пользовательскую активность для аналитики.
touchTolerance в зависимости от размера
элемента и плотности пикселей.overlayClickNext для ускоренной навигации
на маленьких экранах.Touch-события в Driver.js дают возможность создавать полностью адаптивные интерактивные подсказки, обеспечивая бесшовное взаимодействие на мобильных устройствах и улучшая пользовательский опыт без потери функциональности стандартного десктопного интерфейса.