Метод scrollTo используется для программного управления
прокруткой страницы или конкретного контейнера, управляемого библиотекой
Locomotive Scroll. Он позволяет плавно перемещать
содержимое к заданной позиции или элементу, поддерживая эффекты инерции
и кастомной анимации.
Сигнатура метода выглядит следующим образом:
scroll.scrollTo(target, options);
target – целевая позиция прокрутки.
Может быть:
number) — абсолютное смещение в пикселях от
начала прокрутки;string) — CSS-селектор элемента, к которому
нужно прокрутиться;HTMLElement) — конкретный узел
документа;options – объект с настройками
анимации и поведения.
optionsoffsetПозволяет смещать конечную позицию прокрутки относительно целевого элемента.
Пример:
scroll.scrollTo('#section2', { offset: -50 });
-50 смещает позицию на 50 пикселей вверх,
позволяя учитывать фиксированные элементы или отступы.durationОпределяет длительность анимации прокрутки в миллисекундах.
Пример:
scroll.scrollTo(500, { duration: 1000 });
500px будет длиться 1
секунду.easingЗадает кривую анимации для прокрутки.
Поддерживаемые типы кривых:
'linear' — равномерная скорость;'easeInQuad', 'easeOutQuad',
'easeInOutQuad' — квадратичная ускоренно/замедленная;'easeInCubic', 'easeOutCubic',
'easeInOutCubic' — кубическая, более плавное движение.Пример использования:
scroll.scrollTo('#footer', { duration: 800, easing: 'easeInOutCubic' });
callbackФункция, вызываемая после завершения анимации прокрутки.
Пример:
scroll.scrollTo('.gallery', {
duration: 1200,
callback: () => {
console.log('Прокрутка завершена');
}
});
disableLerpУправляет использованием интерполяции (lerp) для плавной прокрутки.
true — отключает плавность, прокрутка происходит
мгновенно к целевой позиции;false — стандартная инерционная прокрутка,
обеспечивающая эффект плавного скролла.Пример:
scroll.scrollTo(0, { disableLerp: true });
Используется, когда требуется мгновенная установка позиции, например, при обновлении состояния страницы или навигации.
target задан как CSS-селектор или DOM-элемент,
библиотека автоматически вычисляет текущую позицию элемента на странице
с учётом всех смещений и текущей прокрутки.offset.overflow, Locomotive Scroll корректно рассчитает позицию в
пределах видимой области.scroll.scrollTo('#contact', {
offset: -100,
duration: 1500,
easing: 'easeOutQuad',
callback: () => console.log('Достигнут блок контактов')
});
scroll.scrollTo(0, { disableLerp: true });
const nextSection = document.querySelector('.section-next');
scroll.scrollTo(nextSection, {
duration: 1200,
easing: 'easeInOutCubic',
callback: () => {
nextSection.classList.add('active');
}
});
offset, особенно если есть фиксированные шапки
или панели.duration обычно находится в
диапазоне 600–1200 мс для плавного визуального эффекта.disableLerp.callback и easing позволяет
создавать сложные последовательные анимации интерфейса,
синхронизированные с прокруткой.Метод scrollTo предоставляет полный контроль над
анимацией прокрутки и является ключевым инструментом для создания
плавных, интерактивных интерфейсов на базе Locomotive
Scroll.