Для запуска тура программно необходимо сначала подключить библиотеку Intro.js к проекту. Обычно это делается через CDN или локальные файлы:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/intro.js/minified/introjs.min.css">
<script src="https://cdn.jsdelivr.net/npm/intro.js/minified/intro.min.js"></script>
После подключения библиотеку можно использовать в любом скрипте
JavaScript. Основной метод для запуска тура — introJs(),
который возвращает объект тура с методами конфигурации и управления.
const tour = introJs();
Каждый шаг тура описывается с помощью метода
setOptions(), который принимает объект с настройками.
Основные параметры шага:
element — CSS-селектор или DOM-элемент, к которому
привязан шаг.intro — текст подсказки, отображаемый
пользователю.position — положение подсказки относительно элемента
(top, right, bottom,
left, auto).Пример конфигурации нескольких шагов:
tour.setOptions({
steps: [
{
element: '#header',
intro: 'Это заголовок страницы',
position: 'bottom'
},
{
element: '#menu',
intro: 'Здесь находится меню навигации',
position: 'right'
},
{
element: '#content',
intro: 'Основной контент отображается здесь',
position: 'top'
}
],
showProgress: true,
exitOnOverlayClick: false
});
После определения шагов, тур запускается вызовом метода
start():
tour.start();
Метод start() возвращает объект тура, что позволяет
сразу использовать цепочку методов для настройки или добавления
событий:
introJs()
.setOptions({ steps: [{ element: '#footer', intro: 'Это футер', position: 'top' }] })
.start();
После запуска тура можно программно управлять переходом между шагами с помощью методов:
nextStep() — переход к следующему шагу.previousStep() — возврат к предыдущему шагу.goToStep(stepNumber) — переход к конкретному шагу по
номеру (начиная с 1).exit() — завершение тура в любой момент.Пример динамического управления:
tour.start();
document.querySelector('#nextButton').addEventListener('click', () => {
tour.nextStep();
});
document.querySelector('#prevButton').addEventListener('click', () => {
tour.previousStep();
});
Intro.js позволяет реагировать на жизненный цикл тура через методы
onbeforechange, onafterchange,
onexit и другие. Это особенно полезно для динамического
обновления интерфейса или загрузки данных перед отображением
подсказки.
tour.onbeforechange(function(targetElement) {
console.log('Пользователь перешёл на элемент:', targetElement.id);
});
tour.onafterchange(function(targetElement) {
console.log('Подсказка отображена для:', targetElement.id);
});
tour.onexit(function() {
console.log('Тур завершён пользователем');
});
Шаги тура можно создавать не только заранее через
setOptions, но и динамически, изменяя их во время
выполнения:
const dynamicTour = introJs();
dynamicTour.setOptions({ steps: [] });
document.querySelectorAll('.feature').forEach((el, index) => {
dynamicTour.addStep({
element: el,
intro: `Функция ${index + 1}`,
position: 'bottom'
});
});
dynamicTour.start();
Intro.js предоставляет гибкие настройки при программном запуске:
showBullets — отображение буллетов шагов.showStepNumbers — отображение номеров шагов.overlayOpacity — прозрачность фона.scrollToElement — автоскролл к элементу шага.disableInteraction — блокировка взаимодействия с
элементом во время шага.Пример с расширенными параметрами:
introJs().setOptions({
steps: [
{ element: '#sidebar', intro: 'Боковая панель', position: 'right' }
],
showBullets: false,
showStepNumbers: true,
overlayOpacity: 0.7,
scrollToElement: true,
disableInteraction: true
}).start();
Все эти возможности позволяют запускать интерактивные туры полностью программно, управлять их логикой и реагировать на действия пользователя, создавая полноценный обучающий интерфейс.