Метод onHighlightStarted является одним из ключевых
коллбэков в библиотеке Driver.js, отвечающим за момент
начала подсветки элемента во время пошагового тура. Он позволяет
выполнять произвольный код в тот момент, когда элемент становится
активным для пользователя, обеспечивая гибкую интеграцию с
интерфейсом.
driver.defineStep({
element: '#example',
popover: {
title: 'Пример',
description: 'Описание шага'
},
onHighlightStarted: function(element) {
// Действия при начале подсветки
}
});
Ключевое отличие от onNext и onPrevious
состоит в том, что onHighlightStarted срабатывает
не после перехода между шагами, а точно в
момент визуального фокуса на элементе.
Примеры применений:
driver.defineStep({
element: '#menu-button',
popover: {
title: 'Меню',
description: 'Нажмите на кнопку для открытия меню'
},
onHighlightStarted: function(element) {
element.classList.add('highlight-animation');
}
});
После срабатывания onHighlightStarted к элементу можно
применить любую анимацию через CSS, создавая визуально привлекательное
выделение.
driver.defineStep({
element: '#submit-form',
popover: {
title: 'Отправка формы',
description: 'Нажмите для отправки'
},
onHighlightStarted: function(element) {
if (!element.disabled) {
console.log('Элемент готов к взаимодействию');
}
}
});
Метод позволяет проверять состояние элементов и подготавливать их к взаимодействию именно в момент начала подсветки.
onHighlightStarted вызывается один раз при
каждом входе на шаг, даже если пользователь возвращается к нему
после других шагов.onHighlightStarted
гарантирует, что элемент уже находится в DOM на момент вызова.Driver.js предоставляет несколько событий для шагов:
| Коллбэк | Момент вызова |
|---|---|
onNext |
При переходе к следующему шагу |
onPrevious |
При возврате к предыдущему шагу |
onHighlightStarted |
Сразу после того, как элемент стал подсвечен |
onHighlightStarted хорошо сочетается с
onNext, позволяя:
Пример сочетания:
driver.defineStep({
element: '#profile-avatar',
popover: {
title: 'Аватар',
description: 'Нажмите для редактирования'
},
onHighlightStarted: function(element) {
element.style.border = '2px solid #ff0000';
},
onNext: function() {
console.log('Пользователь перешел к следующему шагу');
}
});
if (element) {...}.requestAnimationFrame, чтобы синхронизировать
дополнительные визуальные эффекты с подсветкой.Метод onHighlightStarted делает туры более
интерактивными и отзывчивыми, обеспечивая моментальный контроль
над подсвеченными элементами. Его использование позволяет:
Правильная интеграция этого коллбэка позволяет создавать интерактивные и современные пользовательские руководства с полной кастомизацией поведения шагов.