Библиотека Intro.js предоставляет набор методов для создания интерактивных пошаговых руководств по веб-страницам. Работа с API строится вокруг инициализации экземпляра, настройки шагов и управления прогрессом.
Для запуска интерактивного руководства используется метод
introJs():
const intro = introJs();
Он возвращает объект, содержащий все доступные методы API. Важный
момент: каждый вызов introJs() создаёт новый экземпляр, что
позволяет запускать несколько независимых туров на одной странице.
Метод setOptions(options) задаёт
глобальные настройки интро. Параметр options — объект с
ключами, среди которых:
steps — массив шагов, каждый шаг — объект вида:
{
element: '#elementId', // CSS-селектор элемента
intro: 'Текст подсказки',
position: 'top' // top, right, bottom, left
}showBullets — отображение точек навигации
(true/false)
showStepNumbers — нумерация шагов
(true/false)
exitOnOverlayClick — закрытие при клике по
затемнению (true/false)
keyboardNavigation — управление с клавиатуры
(true/false)
tooltipClass — пользовательский CSS-класс для
тултипа
Пример:
intro.setOptions({
steps: [
{ element: '#header', intro: 'Это заголовок сайта', position: 'bottom' },
{ element: '#menu', intro: 'Это меню навигации', position: 'right' }
],
showBullets: true,
exitOnOverlayClick: false
});
После настройки шагов интро запускается методом
start():
intro.start();
Методы управления прогрессом:
nextStep() — переход к следующему
шагу.
previousStep() — возврат к
предыдущему шагу.
goToStep(step) — переход на
указанный шаг (номер или элемент):
intro.goToStep(3).start();exit() — завершение интро, скрытие
всех подсказок.
refresh() — пересчёт позиции
тултипов, полезно при динамическом изменении DOM.
Intro.js предоставляет возможность отслеживать жизненный цикл интро через события:
onbeforechange — вызывается перед изменением шага.onchange — вызывается при переходе на новый шаг.onafterchange — вызывается после изменения шага.oncomplete — вызывается при завершении интро.onexit — вызывается при выходе до окончания.Пример использования событий:
intro.onchange(function(targetElement) {
console.log('Смена шага, элемент:', targetElement);
});
intro.oncomplete(function() {
alert('Интро завершено!');
});
Шаги можно добавлять не только через setOptions, но и
динамически:
intro.addStep({
element: '#footer',
intro: 'Это нижний колонтитул',
position: 'top'
});
Метод addStep() позволяет гибко строить
тур в зависимости от условий на странице.
currentStep() — возвращает номер
текущего шага.hideHint() / showHint() —
управление подсказками для элементов.refreshHints() — обновление позиции
всех подсказок после изменения DOM.exitTo(step) — завершение интро с
автоматическим переходом к определённому шагу.Методы addHints() и
showHints() позволяют создавать подсказки
вне основного интро. Подсказки привязаны к элементам и могут быть
интерактивными:
intro.addHints();
intro.showHints();
Каждая подсказка настраивается через data-hint и
data-hint-position в HTML:
<button id="saveBtn" data-hint="Сохранить изменения" data-hint-position="right">Сохранить</button>
Intro.js позволяет сочетать пошаговые руководства и подсказки на одной странице. Важно помнить, что:
showHints, hideHint) не
влияют на активное интро.| Метод | Описание |
|---|---|
introJs() |
Создаёт новый экземпляр интро |
setOptions(options) |
Настройка шагов и глобальных параметров |
start() |
Запуск интро |
nextStep() |
Следующий шаг |
previousStep() |
Предыдущий шаг |
goToStep(step) |
Переход к указанному шагу |
exit() |
Завершение интро |
refresh() |
Пересчёт позиции тултипов |
addStep(step) |
Динамическое добавление шага |
onchange(callback) |
Событие при смене шага |
oncomplete(callback) |
Событие завершения интро |
addHints() |
Добавление подсказок |
showHints() |
Отображение подсказок |
hideHint(element) |
Скрытие конкретной подсказки |
refreshHints() |
Обновление позиции подсказок после изменения DOM |
Эти методы формируют ядро взаимодействия с Intro.js и позволяют создавать как простые, так и сложные интерактивные туры, полностью контролируемые через JavaScript.