Реалізація Lenis / Locomotive Scroll для плавного скролу

Реалізація Lenis / Locomotive Scroll для плавного скролу

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Реалізація Lenis / Locomotive Scroll для плавного скролу
Середній
від 1 дня до 3 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1419
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1287
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    983
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1248
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    984
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    998

Реалізація Lenis / Locomotive Scroll для плавного скролу

LCP на мобільних просідає через дискретний скрол — користувачі бачать смиканий parallax і низький FPS. Рішення — Lenis або Locomotive Scroll. Наш досвід: у 50+ проєктах ми досягли стабільних 60 FPS навіть на iPhone SE. Без цих бібліотек реалізація smooth scrolling виглядає переривчасто, а інерція відсутня. Для кінематографічного ефекту потрібна правильна інтеграція — ми покажемо, як уникнути типових помилок.

Замовники все частіше запитують кінематографічний скрол — це тренд у вебі. Наша команда, з досвідом full-stack розробки понад 5 років, інтегрувала обидві бібліотеки в десятках проєктів: від лендінгів до складних SPA. Ось як робити це правильно.

Яку бібліотеку обрати: Lenis чи Locomotive Scroll?

Перша дилема — вибір бібліотеки. Lenis легший за Locomotive Scroll у 3 рази (5 KB проти 15 KB у gzip), активно підтримується в репозиторії Lenis і не прив'язує до певної HTML-структури. Згідно з документацією, бібліотека оптимізована для сучасних бандлерів. Locomotive Scroll v2 доречний, якщо потрібен вбудований parallax без додаткових бібліотек, але для кастомних анімацій Lenis дає більше контролю. FPS на мобільних у Lenis вищий у 1.5-2 рази (60 FPS проти 30-40 FPS). Економія бюджету на ліцензіях у порівнянні з комерційними аналогами суттєва.

Характеристика Lenis Locomotive Scroll v2
Вага (min+gzip) ~5 KB ~15 KB
Вбудований parallax Ні (через ScrollTrigger) Є (data-speed)
React-інтеграція Проста (контекст) Потребує обгортки
Підтримка Активна (Darkroom) Сповільнена
iOS smooth touch Вимикається опцією Вбудований fallback
FPS на мобільних 60 FPS 30-40 FPS

Як встановити Lenis і запустити плавний скрол

Установка через пакетний менеджер:

npm install lenis 

Створення екземпляра з налаштуваннями:

import Lenis from 'lenis'; const lenis = new Lenis({ duration: 1.2, easing: (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t)), orientation: 'vertical', smoothWheel: true, touchMultiplier: 2, }); function raf(time: number) { lenis.raf(time); requestAnimationFrame(raf); } requestAnimationFrame(raf); 

Як інтегрувати Lenis з GSAP ScrollTrigger

Це основний кейс: Lenis керує скролом, ScrollTrigger — анімаціями. Після створення Lenis підпишіться на подію scroll і оновлюйте ScrollTrigger. Замініть стандартний ticker GSAP на виклик lenis.raf.

import gsap from 'gsap'; import ScrollTrigger from 'gsap/ScrollTrigger'; gsap.registerPlugin(ScrollTrigger); lenis.on('scroll', ScrollTrigger.update); gsap.ticker.add((time) => { lenis.raf(time * 1000); }); gsap.ticker.lagSmoothing(0); 

Завдяки цьому анімації ScrollTrigger синхронізуються з віртуальним скролом. Економія часу на налагодження — до 2 годин типових багів з розсинхроном.

Як інтегрувати Lenis з React?

React-інтеграція потребує контексту та хука. Створіть LenisProvider і використовуйте useLenis для програмного скролу. Це спрощує реалізацію React smooth scroll.

import { createContext, useContext, useEffect, useRef } from 'react'; import Lenis from 'lenis'; const LenisContext = createContext<Lenis | null>(null); export const LenisProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => { const lenisRef = useRef<Lenis | null>(null); useEffect(() => { const lenis = new Lenis(); lenisRef.current = lenis; const raf = (time: number) => lenis.raf(time); requestAnimationFrame(raf); return () => { lenis.destroy(); }; }, []); return <LenisContext.Provider value={lenisRef.current}>{children}</LenisContext.Provider>; }; export const useLenis = () => useContext(LenisContext); 

Важно створювати екземпляр у useEffect і викликати destroy при демонтуванні.

Що робити з типовими помилками

Ось покрокова інструкція для вирішення частих проблем:

  1. Динамічний контент: після додавання елементів через fetch або React-стани викличте lenis.resize() або ScrollTrigger.refresh().
  2. Вкладені скроляні контейнери: виключіть модальні вікна з віртуального скролу, додавши їм атрибут data-lenis-prevent.
  3. Мобільні пристрої: вимкніть smoothTouch на iOS (опція smoothTouch: false) і використовуйте will-change: transform на parallax-елементах для примусового GPU-прискорення.
  4. Продуктивність: відстежуйте FPS за допомогою lenis.on('scroll', ...). Якщо на слабких пристроях просідання нижче 50 FPS, зменшіть параметр duration до 0.8 або вимкніть плавність для старих Android-версій.
Часта помилка: N+1 query при parallax При динамічному оновленні контенту з parallax-ефектами без виклику `lenis.resize()` виникає N+1 запит — кожен новий елемент ініціює окремий перерахунок скролу. Це просідає FPS до 20. Рішення: використовувати ResizeObserver або Batch updates.

Порівняння часу інтеграції: самописне рішення vs Lenis

Підхід Час на налаштування Типові баги Підтримка мобільних
Самописний плавний скрол 3-5 днів N+1, розсинхрон Потребує доопрацювань
Lenis 1-3 дні Мінімум З коробки

Що входить в роботу з інтеграції

  • Підбір та налаштування бібліотеки (Lenis / Locomotive) під архітектуру проєкту.
  • Інтеграція з GSAP ScrollTrigger та кастомними анімаціями (включно з timeline).
  • Parallax-ефекти через data-атрибути або кастомні розрахунки.
  • Адаптація під мобільні пристрої (iOS/Android) з урахуванням роздільної здатності екрану.
  • Вирішення проблем продуктивності (ResizeObserver, will-change, оптимізація композитингу).
  • Документація коду та навчання команди.
  • Технічна підтримка протягом 30 днів після здачі.

Чому варто обрати Lenis для нового проєкту?

Наш досвід показує: Lenis вирішує 90% завдань плавного скролу без зайвої магії. Він легко комбінується з будь-якою анімаційною бібліотекою (GSAP, Framer Motion, Three.js). Гарантуємо, що інтеграція під ключ займе не більше 3 днів, включаючи адаптацію під мобільні та кастомні parallax-ефекти. Економія бюджету на розробці в порівнянні з самописним рішенням становить до 40%. Якщо у вас складний проєкт з вкладеними скроляними контейнерами або динамічним завантаженням — зв'яжіться з нами, оцінимо завдання безкоштовно.

Терміни та вартість

Базова установка Lenis з плавним скролом — від 1 дня. Повна інтеграція з parallax, ScrollTrigger і React — 2–3 дні. Вартість розраховується індивідуально залежно від складності та обсягу робіт. Замовте інтеграцію сьогодні — отримайте консультацію інженера з досвідом понад 5 років.