Intro.js предоставляет функционал для создания интерактивных пошаговых руководств по пользовательскому интерфейсу. Одной из важных возможностей является управление поведением шага при желании пользователя пропустить руководство. Эта функциональность критична для улучшения UX, позволяя пользователю быстро покинуть тур, если он уже знаком с интерфейсом или хочет исследовать его самостоятельно.
Для включения возможности пропуска используется параметр
showSkipButton. Он добавляется при инициализации
Intro.js:
const intro = introJs();
intro.setOptions({
steps: [
{ element: '#step1', intro: 'Описание шага 1' },
{ element: '#step2', intro: 'Описание шага 2' }
],
showSkipButton: true
});
intro.start();
Ключевые моменты:
showSkipButton: true автоматически добавляет кнопку
Skip в интерфейс подсказки.Intro.js предоставляет событие onexit, которое
срабатывает при завершении или пропуске тура. Это позволяет выполнять
дополнительные действия:
intro.onexit(function() {
console.log('Пользователь пропустил тур или закрыл его');
// Можно сохранять состояние в localStorage, чтобы не показывать тур повторно
localStorage.setItem('introSkipped', true);
});
Особенности использования:
onexit вызывается и при обычном завершении тура
(next до конца), и при нажатии на
Skip.let skipped = false;
document.querySelector('.introjs-skipbutton').addEventListener('click', function() {
skipped = true;
});
intro.onexit(function() {
if (skipped) {
console.log('Тур был пропущен');
} else {
console.log('Тур завершен обычным образом');
}
});
Иногда необходимо, чтобы пропуск был доступен не на всех шагах, а
только на определенных. Для этого применяют параметр
skipLabel и динамически управляют видимостью кнопки через
CSS:
intro.setOptions({
showSkipButton: true,
skipLabel: 'Пропустить'
});
intro.onafterchange(function(targetElement) {
if (targetElement.id === 'step2') {
document.querySelector('.introjs-skipbutton').style.display = 'none';
} else {
document.querySelector('.introjs-skipbutton').style.display = 'inline-block';
}
});
onafterchange срабатывает после смены шага.exitOnOverlayClickПараметр exitOnOverlayClick позволяет пользователю
закрыть тур кликом по затемненной области вне элементов. Его можно
комбинировать с showSkipButton:
intro.setOptions({
showSkipButton: true,
exitOnOverlayClick: true
});
exitOnOverlayClick
срабатывает аналогично нажатию Skip.onexit можно обработать оба случая единообразно.Для предотвращения повторного отображения тура после пропуска
используют localStorage или cookies:
if (!localStorage.getItem('tourSkipped')) {
intro.start();
}
intro.onexit(function() {
localStorage.setItem('tourSkipped', true);
});
Важные моменты:
Intro.js позволяет пропустить тур через программный вызов метода
exit():
const intro = introJs();
intro.start();
// Программный пропуск через 5 секунд
setTimeout(function() {
intro.exit();
}, 5000);
onexit сработает аналогично ручному нажатию кнопки
Skip.onexit для
сохранения состояния и предотвращения повторного отображения.onafterchange и CSS.exitOnOverlayClick для
естественного поведения при клике вне элементов.exit() для сценариев автоматического пропуска.Эти возможности делают интерактивные туры в Intro.js гибкими, позволяя пользователю управлять своим опытом и разработчику точно контролировать логику отображения шагов.