Метод isActive является ключевым инструментом для
управления состоянием шагов и туров в библиотеке Shepherd.js. Он
позволяет определить, активен ли в текущий момент конкретный шаг, что
особенно важно при динамическом управлении пользовательскими
интерфейсами и последовательностями туров.
Метод проверяет состояние шага и возвращает логическое значение:
const active = step.isActive();
true — шаг в данный момент активен и отображается
пользователю.false — шаг не активен. Это может означать, что шаг ещё
не был открыт, уже закрыт или пропущен.Использование isActive помогает избегать конфликтов при
вызове методов show, hide, cancel
и complete, обеспечивая корректную логику отображения
шагов.
Проверка перед открытием шага:
if (!step.isActive()) {
step.show();
}
В данном примере show() вызывается только если шаг ещё
не отображается, предотвращая повторное открытие и возможные ошибки
интерфейса.
Условное закрытие шага:
if (step.isActive()) {
step.hide();
}
Это гарантирует, что метод hide() не будет вызван для
неактивного шага, что особенно полезно при динамическом управлении
несколькими шагами одновременно.
Метод isActive тесно связан с состоянием тура
(Tour). Если шаг активен, тур обычно также находится в
активном состоянии, однако тур может быть активен и при нескольких шагах
в очереди. Для комплексного управления последовательностью шагов
рекомендуется проверять активность каждого шага перед изменением
состояния тура.
tour.steps.forEach((step) => {
if (!step.isActive()) {
step.show();
}
});
isActive возвращает
true сразу после начала отображения шага, даже если
анимация ещё не завершена.show, hide, cancel и
complete могут быть использованы совместно с
isActive для построения сложной логики. Например:step.on('hide', () => {
console.log('Шаг скрыт, isActive:', step.isActive()); // false
});
В проектах с множеством шагов метод isActive
позволяет:
if (!step1.isActive() && step2.isActive()) {
step1.show();
}
| Метод | Описание |
|---|---|
isActive() |
Проверяет, активен ли шаг в текущий момент |
isOpen() |
Проверяет, открыт ли шаг (может быть активен, но скрыт через CSS/анимацию) |
tour.active |
Проверяет, активен ли тур целиком |
isActive дает более точную информацию именно о
конкретном шаге, а не о состоянии тура в целом, что делает его
незаменимым для точечного управления.
show, hide,
cancel и complete для предотвращения
ошибок.Метод isActive обеспечивает прозрачное управление
состоянием шагов, позволяя создавать гибкие и устойчивые
пользовательские туры в приложениях на JavaScript.