Intro.js предоставляет мощный инструмент для создания пошаговых интерактивных руководств на веб-страницах. Одним из ключевых аспектов работы с библиотекой является управление навигацией между шагами: переход вперед, возврат назад и управление состоянием текущего шага.
nextStep()Метод nextStep() позволяет программно перейти к
следующему шагу текущей последовательности.
const intro = introJs();
intro.setOptions({
steps: [
{ element: '#step1', intro: 'Первый шаг' },
{ element: '#step2', intro: 'Второй шаг' },
{ element: '#step3', intro: 'Третий шаг' }
]
});
intro.start();
// Переход к следующему шагу
intro.nextStep();
Особенности:
nextStep()
не приводит к ошибке, но завершает последовательность.previousStep()Метод previousStep() позволяет возвращаться к
предыдущему шагу.
intro.previousStep();
Особенности:
goToStep(stepNumber)Метод goToStep(stepNumber) позволяет перемещаться на
конкретный шаг по индексу (индексация начинается с 1).
intro.goToStep(2).start();
Особенности:
start() после
goToStep(), если последовательность не была запущена
ранее.Intro.js по умолчанию предоставляет кнопки “Далее” и “Назад”. Для более гибкого управления можно создавать собственные кнопки и привязывать к ним события.
intro.setOptions({
steps: [
{ element: '#step1', intro: 'Первый шаг', position: 'right' },
{ element: '#step2', intro: 'Второй шаг', position: 'left' },
],
showStepNumbers: true,
showButtons: false // скрываем стандартные кнопки
});
intro.start();
document.querySelector('#custom-next').addEventListener('click', () => intro.nextStep());
document.querySelector('#custom-prev').addEventListener('click', () => intro.previousStep());
Ключевые моменты:
showButtons: false
дает полный контроль над навигацией.Intro.js предоставляет ряд событий, которые можно использовать для отслеживания переходов между шагами.
onbeforechangeСрабатывает перед изменением текущего шага.
intro.onbeforechange(function(targetElement) {
console.log('Переход к шагу', this._currentStep + 1);
});
onafterchangeСрабатывает после отображения нового шага.
intro.onafterchange(function(targetElement) {
console.log('Текущий шаг:', this._currentStep + 1);
});
Применение событий:
Навигация может быть адаптивной в зависимости от условий на странице:
intro.onafterchange(function() {
if (this._currentStep === 1) {
document.querySelector('#custom-next').style.display = 'none';
} else {
document.querySelector('#custom-next').style.display = 'inline-block';
}
});
Особенности:
Intro.js автоматически отслеживает текущий шаг, что позволяет реализовать:
goToStep().intro.onbeforechange(function() {
if (this._currentStep === 1 && someCondition) {
this.goToStep(3);
}
});
previousStep() или nextStep() для избежания
непредвиденных переходов.onbeforechange и
onafterchange для интеграции логики приложения с процессом
обучения.goToStep() для условных или динамических
маршрутов обучения, чтобы улучшить пользовательский опыт.Навигация вперед и назад в Intro.js — фундаментальный инструмент для построения интерактивных обучающих маршрутов, позволяющий гибко управлять последовательностью шагов и обеспечивать полный контроль над пользовательским интерфейсом.