Библиотека Intro.js предоставляет мощный и гибкий
инструмент для создания интерактивных пошаговых руководств по
веб-страницам. Центральным элементом управления шагами является
использование HTML-атрибутов data-intro и
data-step, которые позволяют определить содержимое
подсказки и порядок её отображения.
data-introАтрибут data-intro отвечает за текст, который будет
отображаться в подсказке для конкретного элемента страницы. Его значение
может содержать строку с произвольным текстом, включая
HTML-теги для форматирования.
Пример базового использования:
<button data-intro="Это кнопка отправки формы">Отправить</button>
Ключевые особенности:
Поддержка HTML: можно использовать теги
<b>, <i>, <br>
для форматирования текста.
<div data-intro="<b>Важная секция</b><br>Обратите внимание на детали">
Контент
</div>Локализация: текст подсказки может быть на любом языке, что позволяет создавать мультиязычные интерфейсы.
Динамическое изменение: значение
data-intro можно изменять через JavaScript перед запуском
интро, что полезно для персонализированных подсказок.
document.querySelector('#myElement').setAttribute('data-intro', 'Новый текст подсказки');data-stepАтрибут data-step определяет порядок
шагов в интерактивном руководстве. Это число, которое
указывает, на каком шаге появится подсказка для данного элемента.
Пример использования:
<div data-step="1" data-intro="Первый шаг">Шаг 1</div>
<div data-step="2" data-intro="Второй шаг">Шаг 2</div>
<div data-step="3" data-intro="Третий шаг">Шаг 3</div>
Особенности:
Порядок следования: Intro.js сортирует элементы
по возрастанию data-step. Если этот атрибут пропущен,
элемент может быть проигнорирован в стандартной
последовательности.
Гибкость: номера шагов могут быть не последовательными, например 1, 3, 7. Библиотека корректно упорядочит их по числовому значению.
Динамическое добавление шагов: можно программно
добавлять шаги к элементам, меняя атрибуты до вызова
introJs().start().
data-intro и data-stepДля корректного функционирования интерактивного руководства рекомендуется использовать оба атрибута одновременно:
<section data-step="1" data-intro="Добро пожаловать на главную страницу">
Главная
</section>
<section data-step="2" data-intro="Здесь находится меню навигации">
Меню
</section>
<section data-step="3" data-intro="Основной контент">
Контент
</section>
data-step задаёт позицию шага в
последовательности.data-intro задаёт текст подсказки для
этого шага.Intro.js позволяет полностью управлять шагами через скрипт, что важно для страниц с динамическим контентом:
const steps = [
{ element: '#header', intro: 'Это заголовок страницы' },
{ element: '#nav', intro: 'Меню навигации' },
{ element: '#footer', intro: 'Подвал сайта' }
];
steps.forEach((step, index) => {
const el = document.querySelector(step.element);
el.setAttribute('data-step', index + 1);
el.setAttribute('data-intro', step.intro);
});
introJs().start();
Преимущества подхода:
<div data-step="1" data-intro='<h3>Заголовок</h3><p>Описание с <b>жирным</b> текстом и изображением:</p><img src="icon.png">' >
Контент
</div>
Intro.js применяет класс introjs-tooltip, который можно
модифицировать:
.introjs-tooltip {
background-color: #333;
color: #fff;
font-size: 16px;
}
Если data-step не указан для элемента, он не будет
участвовать в последовательности, что позволяет гибко управлять набором
шагов без удаления HTML.
Использование data-intro и data-step
обеспечивает максимальную простоту при создании пошаговых
подсказок и позволяет масштабировать интерактивные руководства
на больших страницах с множеством элементов. Эти атрибуты служат
фундаментом для всех продвинутых функций Intro.js: динамического
управления шагами, кастомных стилей и мультимедийного контента.