Skip to main content

Command Palette

Search for a command to run...

🚄 Locomotive Scroll: The Smooth Scrolling Magic

Updated
•3 min read
🚄 Locomotive Scroll: The Smooth Scrolling Magic
R
Hi, I'm Rohan, a Computer Science graduate and web developer passionate about building practical web applications and sharing what I learn. My core stack includes HTML, CSS, JavaScript, React, Bootstrap, PHP, and MySQL. I enjoy creating real-world projects such as e-commerce platforms, inventory management systems, and modern web apps. Along the way, I’ve completed technical training and certifications covering Java, DBMS, SQL, networking, and DevOps fundamentals. I also actively explore AI tools and APIs to integrate intelligent features into applications. On this blog, I share insights from my projects, development journey, and lessons learned while building software. Always open to learning, collaborating, and contributing to meaningful projects.
  • 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.

More from this blog

Rohan's Blogs

75 posts

🚄 Locomotive Scroll: The Smooth Scrolling Magic