Shepherd.js предоставляет гибкие возможности для создания интерактивных туров по веб-приложениям. Один из ключевых аспектов — управление оверлеем, который затемняет фон и акцентирует внимание пользователя на активном элементе интерфейса. Оверлей не только визуально выделяет цель, но и предотвращает случайные клики по остальной части страницы. Настройка его поведения и внешнего вида позволяет добиться высокой степени интерактивности и соответствия стилю приложения.
По умолчанию Shepherd.js использует простое затемнение фона при
активации шага. Для изменения его параметров используется объект
modal в конфигурации шага:
const tour = new Shepherd.Tour({
useModalOverlay: true,
defaultStepOptions: {
scrollTo: { beh * avior: 'smooth', block: 'center' },
modalOverlayOpeningPadding: 5
}
});
Ключевые параметры:
Shepherd.js использует динамический элемент <div>
с классом .shepherd-modal-overlay-container для оверлея.
Для кастомизации его внешнего вида применяются стандартные
CSS-селекторы:
.shepherd-modal-overlay-container {
background-color: rgba(0, 0, 0, 0.7);
transition: background-color 0.3s ease;
border-radius: 8px;
}
.shepherd-modal-overlay-container.shepherd-open {
background-color: rgba(0, 0, 0, 0.5);
}
Возможности стилизации:
background-color.transition..shepherd-open и .shepherd-close.Shepherd.js позволяет контролировать не только визуальную составляющую, но и поведение оверлея:
tour.on('cancel', () => console.log('Тур завершен'));
tour.start();
document.querySelector('.shepherd-modal-overlay-container').addEventListener('click', () => {
tour.cancel();
});
По умолчанию все клики по оверлею блокируются, но можно задать исключения, чтобы пользователь мог взаимодействовать с некоторыми элементами интерфейса.
Shepherd.js предоставляет возможность использовать подсветку активного элемента:
defaultStepOptions: {
attachTo: {
element: '.button-start',
on: 'bottom'
},
modalOverlayOpeningPadding: 10
}
В сочетании с CSS:
.shepherd-modal-overlay-container .shepherd-element {
box-shadow: 0 0 0 4px rgba(255, 255, 0, 0.6);
border-radius: 6px;
}
Это создает эффект «маски», где фон затемнен, а элемент выглядит подсвеченным.
Иногда требуется менять стиль оверлея для разных шагов:
tour.addStep({
id: 'step-1',
text: 'Пример подсветки кнопки',
attachTo: { element: '.start-btn', on: 'top' },
modalOverlayOpeningPadding: 15,
classes: 'custom-overlay-step'
});
CSS для этого шага:
.shepherd-modal-overlay-container.custom-overlay-step {
background-color: rgba(0, 100, 200, 0.6);
}
Это позволяет для каждого шага задавать уникальный цвет, прозрачность или даже текстурированные фоны.
Добавление анимаций повышает визуальную привлекательность:
.shepherd-modal-overlay-container {
opacity: 0;
transition: opacity 0.4s ease-in-out;
}
.shepherd-modal-overlay-container.shepherd-open {
opacity: 1;
}
Преимущество такого подхода в том, что при смене шагов оверлей плавно появляется и исчезает, создавая более мягкое восприятие.
Для адаптивных интерфейсов важно учитывать размеры экрана:
window.addEventListener('resize', () => {
const overlay = document.querySelector('.shepherd-modal-overlay-container');
overlay.style.borderRadius = window.innerWidth < 768 ? '0' : '8px';
});
modalOverlayOpeningPadding, чтобы шаги оставались
видимыми.Shepherd.js оверлей легко интегрируется с анимационными библиотеками вроде GSAP или Anime.js для сложных эффектов, например:
gsap.from('.shepherd-modal-overlay-container', {
duration: 0.5,
opacity: 0,
ease: 'power2.out'
});
Это позволяет создавать сложные переходы, которые невозможно реализовать только через CSS.
Кастомизация оверлея в Shepherd.js включает три уровня контроля: визуальный стиль через CSS, поведение через API, динамическая адаптация под шаги и устройства. Такой подход делает интерфейс более интуитивным и визуально выразительным, а тур — максимально комфортным и информативным.