В Shepherd.js параметр scrollTo
используется для управления прокруткой страницы при показе шагов тура.
Он позволяет гарантировать, что целевой элемент виден пользователю и не
скрыт за пределами видимой области окна браузера. Эта функциональность
особенно важна для динамически изменяющихся интерфейсов или длинных
страниц с множеством контента.
scrollToscrollTo может принимать несколько видов значений, в
зависимости от того, какой эффект прокрутки требуется:
scrollTo: true
При true Shepherd автоматически прокручивает страницу к
элементу, к которому привязан шаг. Если false, прокрутки не
будет.
scrollTo: { beh * avior: 'smooth', block: 'center', inline: 'nearest' }
Здесь можно задать детальные параметры для
Element.scrollIntoView:
behavior — способ прокрутки ('auto' или
'smooth'),block — вертикальное позиционирование элемента в
видимой области ('start', 'center',
'end', 'nearest'),inline — горизонтальное позиционирование
('start', 'center', 'end',
'nearest').scrollTo: function() {
return document.querySelector('#custom-target');
}
Можно указать функцию, которая возвращает элемент для прокрутки. Это даёт гибкость при динамически создаваемых элементах или нестандартных сценариях.
const tour = new Shepherd.Tour({
defaultStepOptions: {
scrollTo: { beh * avior: 'smooth', block: 'center' },
cancelIcon: { enabled: true },
classes: 'shepherd-theme-arrows'
}
});
tour.addStep({
title: 'Форма входа',
text: 'Введите свои учетные данные здесь',
attachTo: {
element: '#login-form',
on: 'bottom'
}
});
tour.addStep({
title: 'Кнопка входа',
text: 'Нажмите, чтобы войти',
attachTo: {
element: '#login-button',
on: 'top'
},
scrollTo: true
});
tour.start();
В этом примере первый шаг использует объект с параметрами
scrollTo, чтобы плавно прокрутить страницу к форме входа и
разместить её в центре экрана. Второй шаг применяет булевое значение
true, что делает прокрутку стандартной.
scrollTo{ beh * avior: 'smooth', block: 'center' } для плавной
прокрутки и комфортного восприятия.scrollTo с параметром
attachTo, чтобы шаг корректно позиционировался относительно
видимого элемента.Shepherd.js позволяет полностью контролировать прокрутку, используя пользовательские функции. Пример:
scrollTo: function() {
const element = document.querySelector('#dynamic-element');
window.scrollTo({
top: element.offsetTop - 50, // учитываем фиксированное меню
beh * avior: 'smooth'
});
return element;
}
В этом случае шаг тура корректно позиционируется, даже если
стандартные параметры scrollIntoView вызывают перекрытие
контента фиксированными элементами.
scrollTo может
отличаться из-за виртуальных клавиатур и панелей инструментов.block: 'center' часто приводит к тому,
что элемент остаётся видимым и не скрыт за клавиатурой.scrollTo для достижения предсказуемого
результата.scrollTo: boolean | Object | Function
scrollIntoView.Использование scrollTo делает туры в Shepherd.js более
адаптивными, удобными и гарантирует, что пользователь видит важные
элементы интерфейса в момент показа шага.