Метод scrollTo() является одним из ключевых инструментов
для программного управления прокруткой страницы при использовании
библиотеки Locomotive Scroll. Он позволяет перемещать
видимую область документа к конкретному элементу, позиции или координате
с плавной анимацией, полностью интегрируясь с виртуальным скроллом
библиотеки.
scroll.scrollTo(target, options);
Параметры:
target – обязательный параметр, определяющий конечное положение прокрутки. Может принимать несколько типов значений:
'#section1',
'.block') – библиотека автоматически находит первый
элемент, соответствующий селектору.'top' или 'bottom'
– прокрутка к началу или концу документа.options – объект с настройками анимации прокрутки:
scroll.scrollTo('#about', {
offset: -50,
duration: 1000,
easing: [0.25, 0.0, 0.35, 1.0]
});
В этом примере страница плавно прокручивается к элементу с
id="about", с компенсацией фиксированной шапки в 50px.
Время анимации составляет 1 секунду, а кривая easing обеспечивает
плавный старт и замедление в конце.
const section = document.querySelector('.services');
scroll.scrollTo(section, { duration: 800 });
Метод принимает прямой DOM-элемент. Здесь используется стандартная скорость Locomotive Scroll с временем анимации 800 мс.
scroll.scrollTo(500, { offset: 0, duration: 500 });
Прокрутка происходит к позиции 500px относительно начала скролла. Это удобно для динамически вычисляемых координат.
scroll.scrollTo('top', { duration: 600 });
scroll.scrollTo('bottom', { duration: 1200 });
Скорость прокрутки может быть индивидуально задана для каждой операции.
window.scroll не синхронизируются с библиотекой.
scrollTo() полностью управляет виртуальной позицией.{duration: 0} или {disableLerp: true}
позволяет мгновенно перемещаться к цели без плавной анимации.scroll.on('call', callback) для динамических
интерактивных скролл-сценариев.scrollTo() рекомендуется проверять существование
DOM-элемента, иначе вызов приведёт к ошибке.Метод scrollTo() часто используется вместе с:
scroll.on('scroll', callback) – для синхронизации
действий с текущей позицией.scroll.update() – после динамического изменения DOM,
чтобы обновить позиции скролла перед прокруткой.scroll.start() / scroll.stop() – для
временной блокировки скролла при анимациях или модальных окнах.Метод scrollTo() обеспечивает высокую гибкость
управления прокруткой, позволяя создавать сложные и плавные
пользовательские интерфейсы с минимальными усилиями, полностью используя
преимущества виртуального скролла Locomotive Scroll.