🚄 Locomotive Scroll: The Smooth Scrolling Magic

  • While working on my latest creative web project, I stumbled upon something that totally leveled up my website experience — Locomotive Scroll.

  • At first, I thought, "Eh, just another scroll library?"

  • But as I explored it more, I realized it’s not just smooth scroll — it’s smooth + animated + immersive. So here’s everything I learned, explained simply.

What is Locomotive Scroll?

  • Locomotive Scroll is a JavaScript library that lets me control how my page scrolls — making it feel smooth, modern, and dynamic.

  • It allows me to add cool animations, parallax effects, and even scroll-based transitions.

  • Basically, it takes boring scroll and turns it into a beautiful, cinematic experience.

Why I Use It

Honestly, I wanted my website to feel better. Not just look better. Locomotive Scroll made everything:

  • Flow smoother

  • Animate on scroll

  • Feel more interactive

  • Work great with immersive 3D designs

It’s perfect for creative portfolios, animations, landing pages, or any site where experience matters.

What’s Unique About It?

Most scroll libraries either:

  • Just smooth out the scroll

  • Or trigger animations with basic scroll events

Locomotive Scroll does both — and it gives me:

✅ Inertia scrolling
✅ Parallax effects
✅ Class triggers when elements come into view
✅ Control over scroll speed, direction, and behavior

The best part? It feels natural, like real-world motion.

How to Use It (With Steps)

Let me break it down step-by-step:

1. Install the Package

bashCopyEditnpm install locomotive-scroll

Or include the CDN if not using a bundler.

2. Setup HTML Structure

This is important for it to work properly!

htmlCopyEdit<div data-scroll-container>
  <section data-scroll-section>
    <h1 data-scroll data-scroll-speed="2">Smooth Scroll Magic</h1>
  </section>
</div>

Make sure to wrap everything inside a data-scroll-container.

3. Initialize in JavaScript

javascriptCopyEditimport LocomotiveScroll from 'locomotive-scroll';

const scroll = new LocomotiveScroll({
  el: document.querySelector("[data-scroll-container]"),
  smooth: true,
});

Boom! 🎉 Smooth scroll is now active.

4. Use Scroll Attributes

Here’s what I love using:

  • data-scroll: Marks element for scroll tracking

  • data-scroll-speed="2": Controls parallax speed

  • data-scroll-class="visible": Adds class when it enters viewport

  • data-scroll-direction="horizontal": Enables sideways scroll

Advantages

  • Super smooth scroll

  • Built-in parallax & effects

  • Easy to animate elements on view

  • Mobile support (with a bit of tweaking)

  • Works great with creative libraries like GSAP & Three.js

Disadvantages

  • Requires clean structure – can break if not set up right

  • Doesn’t work well with some other scroll-based libraries out of the box

  • Not ideal for basic websites – it’s best for creative/portfolio-type sites

  • May need tweaks for mobile smoothness

Tip: When using in React/Vite/SPA setups, make sure to reinitialize on route change.

Conclusion

If you're building a creative, immersive website — Locomotive Scroll is 🔥.

It’s easy to set up once you understand the structure, and the final result is super impressive.

0
Subscribe to my newsletter

Read articles from Rohan Shrivastava directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Rohan Shrivastava
Rohan Shrivastava

Hi, I'm Rohan, a B.Tech graduate in Computer Science (Batch 2022) with expertise in web development (HTML, CSS, JavaScript, Bootstrap, PHP, XAMPP). My journey expanded with certifications and intensive training at Infosys, covering DBMS, Java, SQL, Ansible, and networking. I've successfully delivered projects, including a dynamic e-commerce site and an Inventory Management System using Java. My proactive approach is reflected in certifications and contributions to open-source projects on GitHub. Recognized for excellence at Infosys, I bring a blend of technical proficiency and adaptability. Eager to leverage my skills and contribute to innovative projects, I'm excited about exploring new opportunities for hands-on experiences. Let's connect and explore how my skills align with your organization's goals.