🚄 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 trackingdata-scroll-speed="2"
: Controls parallax speeddata-scroll-class="visible"
: Adds class when it enters viewportdata-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.
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.