Для начала работы с Locomotive Scroll необходимо установить библиотеку через npm или подключить её напрямую через CDN. В случае npm используется команда:
npm install locomotive-scroll
После установки можно импортировать библиотеку в проект:
import LocomotiveScroll from 'locomotive-scroll';
При подключении через CDN достаточно добавить ссылку на скрипт в HTML:
<script src="https://cdn.jsdelivr.net/npm/locomotive-scroll/dist/locomotive-scroll.min.js"></script>
Также необходимо подключить CSS стили библиотеки:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/locomotive-scroll/dist/locomotive-scroll.css" />
Locomotive Scroll содержит несколько ключевых файлов, которые формируют её функциональность:
locomotive-scroll.js – основной JavaScript-файл библиотеки. Содержит весь код для инициализации скролла, обработку событий, плавную прокрутку и работу с анимациями. Этот файл необходимо импортировать для работы функционала библиотеки.
locomotive-scroll.min.js – минифицированная версия основного скрипта. Она содержит тот же функционал, но сжатый для ускорения загрузки страницы.
locomotive-scroll.css – стили, обеспечивающие корректное отображение скролла и поддержку эффекта параллакса. Этот файл отвечает за overflow, smooth scrolling и работу внутренних обёрток элементов.
helpers.js (в исходной структуре исходников) – вспомогательные функции для расчёта положения элементов, оптимизации производительности и работы с событиями resize/scroll. Этот файл редко используется напрямую, но критически важен для работы основной логики.
es/ и dist/ – папки с разными вариантами сборки:
types/ – папка с TypeScript-типами. Она позволяет использовать библиотеку в TypeScript-проектах с полной типизацией.
Правильная организация файлов и папок проекта обеспечивает стабильную работу и удобство масштабирования. Типичная структура может выглядеть так:
project/
│
├─ src/
│ ├─ js/
│ │ └─ main.js
│ ├─ scss/
│ │ └─ styles.scss
│ └─ index.html
│
├─ node_modules/
│ └─ locomotive-scroll/
│ ├─ dist/
│ ├─ es/
│ ├─ src/
│ └─ types/
│
└─ package.json
<script>.Для работы Locomotive Scroll необходимо создать новый объект и передать конфигурацию:
const scroll = new LocomotiveScroll({
el: document.querySelector('[data-scroll-container]'),
smooth: true,
direction: 'vertical',
multiplier: 1,
class: 'is-reveal'
});
Ключевые параметры:
el – контейнер с прокручиваемым контентом,
обязателен.smooth – включает плавную прокрутку.direction – направление скролла (vertical
или horizontal).multiplier – коэффициент скорости прокрутки.class – CSS-класс, который добавляется элементам при
появлении в зоне видимости.Locomotive Scroll работает через комбинацию JS и CSS. CSS отвечает за overflow контейнера и скрытие стандартного скролла, а JS обрабатывает движение содержимого и события. Без подключения CSS эффекта плавного скролла не будет, даже если скрипт инициализирован.
Основные зависимости:
[data-scroll-container] {
overflow: hidden;
}
data-scroll:<div data-scroll data-scroll-speed="2">Параллакс элемент</div>
Для продакшена рекомендуется использовать минифицированный скрипт
(locomotive-scroll.min.js) и объединять его с собственными
JS-файлами через сборщик. В исходной структуре библиотеки есть как
ES-модули (es/), так и CommonJS-сборки, что облегчает
интеграцию с различными проектами.
Файлы из types/ позволяют корректно типизировать объект
Locomotive Scroll:
import LocomotiveScroll, { LocomotiveScrollOptions } from 'locomotive-scroll';
const options: LocomotiveScrollOptions = {
el: document.querySelector('[data-scroll-container]')!,
smooth: true
};
const scroll = new LocomotiveScroll(options);
Это обеспечивает автодополнение, проверку типов и предотвращает ошибки при передаче конфигурации.
Locomotive Scroll не требует внешних библиотек для базовой работы, но использует несколько вспомогательных утилит внутри:
Эти модули находятся в исходниках библиотеки, но не требуют отдельного подключения пользователем.