Библиотека Intro.js предоставляет удобный API для создания интерактивных пошаговых инструкций на веб-страницах. Конфигурация запускается через объект опций, который передается при инициализации. Рассмотрим ключевые параметры, их назначение и примеры использования.
stepsМассив объектов, задающий последовательность шагов интро. Каждый шаг описывается следующими свойствами:
element — CSS-селектор или
DOM-элемент, к которому привязывается подсказка.intro — текст подсказки, отображаемый
на шаге.position — положение подсказки
относительно элемента (top, right,
bottom, left, auto).tooltipClass — дополнительный
CSS-класс для стилизации подсказки на конкретном шаге.highlightClass — класс, который
применяется к элементу для подсветки.Пример:
introJs().setOptions({
steps: [
{
element: '#header',
intro: 'Это заголовок страницы',
position: 'bottom'
},
{
element: '#menu',
intro: 'Меню навигации',
position: 'right',
tooltipClass: 'custom-tooltip'
},
{
element: '#footer',
intro: 'Футер с контактами',
position: 'top'
}
]
}).start();
nextLabel и
prevLabelПозволяют задавать текст кнопок навигации в подсказках.
nextLabel — текст кнопки “Далее”.prevLabel — текст кнопки “Назад”.skipLabel — текст кнопки для пропуска
интро.doneLabel — текст кнопки для
завершения.introJs().setOptions({
nextLabel: 'Вперед',
prevLabel: 'Назад',
skipLabel: 'Пропустить',
doneLabel: 'Готово'
});
showStepNumbersБулевый параметр, управляющий отображением номеров шагов. По
умолчанию включено (true). Установка false
убирает нумерацию.
introJs().setOptions({
showStepNumbers: false
});
exitOnEsc и
exitOnOverlayClickКонтролируют способ выхода из интро:
exitOnEsc — закрытие интро при нажатии
клавиши Esc (по умолчанию true).exitOnOverlayClick — закрытие интро
при клике на затемненную область вокруг элемента (по умолчанию
true).introJs().setOptions({
exitOnEsc: false,
exitOnOverlayClick: false
});
showBulletsУправляет отображением навигационных маркеров (буллетов) для шагов.
Значение true показывает маркеры, false —
скрывает.
introJs().setOptions({
showBullets: true
});
scrollToElementБулевый параметр, определяющий, будет ли библиотека автоматически прокручивать страницу к текущему элементу. Возможные значения:
true — прокрутка активна.false — прокрутка отключена.'tooltip' — прокручивается так, чтобы подсказка была
полностью видна.introJs().setOptions({
scrollToElement: 'tooltip'
});
disableInteractionЕсли установлено true, пользователь не сможет
взаимодействовать с элементом, на котором находится шаг интро. Полезно
для блокировки кнопок или полей ввода до завершения шага.
introJs().setOptions({
disableInteraction: true
});
keyboardNavigationПозволяет управлять возможностью навигации между шагами с помощью
клавиатуры. Значение по умолчанию — true. Если отключено,
стрелки и клавиши Enter/Esc не работают для перемещения по шагам.
introJs().setOptions({
keyboardNavigation: false
});
overlayOpacityЗадает уровень прозрачности затемненного фона. Значение от
0 (полностью прозрачный) до 1 (полностью
непрозрачный). По умолчанию 0.5.
introJs().setOptions({
overlayOpacity: 0.7
});
tooltipPositionМожно задавать глобальное положение подсказки по умолчанию для всех
шагов, если отдельные шаги не указывают position.
introJs().setOptions({
tooltipPosition: 'right'
});
hidePrev и
hideNextЭти параметры позволяют скрывать кнопки “Назад” или “Далее” на всех шагах. Часто используется в сочетании с кастомной навигацией.
introJs().setOptions({
hidePrev: true,
hideNext: false
});
tooltipClass — назначается на
конкретный шаг или глобально через setOptions.highlightClass — выделение
элемента.overlayClass — дополнительный класс
для затемненного фона.Пример глобальной кастомизации:
introJs().setOptions({
tooltipClass: 'custom-tooltip',
highlightClass: 'highlighted-element',
overlayClass: 'dark-overlay'
});
Intro.js позволяет реагировать на события, связанные с шагами, для динамического управления контентом:
onbeforechange(function(targetElement){})
— перед сменой шага.onafterchange(function(targetElement){})
— после смены шага.oncomplete(function(){}) — при
завершении интро.onexit(function(){}) — при досрочном
выходе.introJs()
.onbeforechange((element) => {
console.log('Меняем шаг на:', element.id);
})
.oncomplete(() => {
console.log('Интро завершено');
})
.start();
Эти опции позволяют гибко настраивать внешний вид, поведение и взаимодействие интро с пользователем. Правильная комбинация параметров обеспечивает плавный и понятный пользовательский опыт на странице.