В библиотеке Shepherd.js свойство
highlightClass используется для управления визуальным
выделением элементов интерфейса, на которые фокусируется текущий шаг
тура. Оно позволяет добавлять пользовательские CSS-классы к целевому
элементу, создавая эффект подсветки, изменения фона, рамки или тени. Это
особенно полезно для улучшения восприятия пользователем, указывая на
ключевые элементы интерфейса.
highlightClass применяется в объекте
step при его конфигурации. Его задача — модифицировать
внешний вид целевого элемента на время отображения шага. После
завершения шага добавленный класс автоматически удаляется, возвращая
элемент к исходному стилю.
Пример базовой конфигурации шага:
const tour = new Shepherd.Tour({
defaultStepOptions: {
classes: 'shepherd-theme-arrows',
scrollTo: true
}
});
tour.addStep({
id: 'example-step',
text: 'Обратите внимание на этот элемент',
attachTo: { element: '#my-element', on: 'bottom' },
highlightClass: 'highlighted-element'
});
tour.start();
В этом примере к элементу с id="my-element" на время
шага будет применён CSS-класс highlighted-element. После
перехода к следующему шагу класс исчезнет.
CSS-класс, указанный в highlightClass, полностью
контролируется разработчиком. Можно использовать любые свойства, чтобы
выделить элемент:
.highlighted-element {
border: 3px solid #FF5722;
box-shadow: 0 0 10px rgba(255, 87, 34, 0.6);
border-radius: 4px;
}
Примеры популярных эффектов:
border и
box-shadow.background-color с прозрачностью.transition
или animation для плавного появления.highlightClass хорошо сочетается с:
Важно: если highlightClass не указан, Shepherd.js не
применяет никакой визуальной подсветки, но шаг по-прежнему корректно
прикрепляется к элементу.
В некоторых случаях требуется менять класс подсветки во время выполнения тура. Shepherd.js позволяет модифицировать шаги после их создания через методы updateStepOptions:
tour.getById('example-step').updateStepOptions({
highlightClass: 'new-highlighted-element'
});
Это полезно для интерактивных интерфейсов, где элементы могут изменять состояние или внешний вид в процессе тура.
Комбинация с анимацией:
.animated-highlight {
border: 2px solid #4CAF50;
box-shadow: 0 0 15px rgba(76, 175, 80, 0.5);
animation: pulse 1.2s infinite;
}
@keyframes pulse {
0% { box-shadow: 0 0 10px rgba(76, 175, 80, 0.3); }
50% { box-shadow: 0 0 20px rgba(76, 175, 80, 0.7); }
100% { box-shadow: 0 0 10px rgba(76, 175, 80, 0.3); }
}
Использование в шаге:
tour.addStep({
id: 'animated-step',
text: 'Смотрите на анимированный элемент',
attachTo: { element: '#animated-element', on: 'top' },
highlightClass: 'animated-highlight'
});
Смена подсветки для разных состояний интерфейса:
const step = tour.getById('example-step');
if (document.querySelector('#my-element').classList.contains('active')) {
step.updateStepOptions({ highlightClass: 'highlight-active' });
} else {
step.updateStepOptions({ highlightClass: 'highlight-inactive' });
}
Такой подход позволяет адаптировать визуальные подсказки под состояние приложения, повышая интерактивность тура.
Свойство highlightClass — мощный инструмент для
визуального акцента на элементах интерфейса в Shepherd.js,
обеспечивающий гибкость, простоту настройки и интеграцию с любыми
CSS-эффектами.