How To Build a Simple Carousel With Vanilla JavaScript (14 Lines of Code!)

How To Build a Simple Carousel With Vanilla JavaScript (14 Lines of Code!)


The common-or-garden carousel (or “slider”) is a typical characteristic on web sites but it surely’s not at all times probably the most simple factor to construct.

On this tutorial, we’ll construct a quite simple carousel utilizing vanilla JavaScript. So easy, the truth is, that it requires lower than 15 strains of JavaScript code.

This type of implementation is ideal for a fundamental web site and it’s additionally a extremely performant approach of displaying content material in a presentable method. When you’ve constructed these slides, you possibly can add no matter content material you need to them; textual content, photos, video, you title it.

Right here’s a take a look at the completed carousel we’ll be constructing–4 easy coloured slides:

Let’s get began!

1. Place the Content material With HTML

Let’s outline the construction of our slider utilizing HTML. We’ll be inserting some slides in a container and a few buttons to manage the slider so the structure will appear to be this:

We outline our slides-container and slides with the ul and li tag respectively for accessibility causes.

2. Type the Carousel With CSS

Now we’ll model our slider. To maintain this demo so simple as doable, I’ll be styling the slides with background colours solely however, as talked about beforehand, any component might be positioned within the carousel (photos, textual content, movies and so on.).

The very first thing we’ll do is model our slider-wrapper, slides-container and slide courses.

The slides container can have overflow:scroll and show:flex properties to show all of the slides on a single row whereas its mother or father container, the slider wrapper, can have an overflow-hidden property. This enables us to scroll by the slides within the container whereas nonetheless staying within the width of the web page.

One advantage of utilizing the overflow:scroll property is that it permits the person to manually scroll by the slides so it’s “draggable”.

We’ll additionally have to override the default styling for the ul tag. After which we’ll set the slides to the total width and top of the slides container. 

We’ve set the slides-container top as calc(100vh-2rem) to offset the 1rem margin on the highest and backside from the slider-wrapper.

Enable for Easy Scrolling

One other essential property to notice is the scroll-behaviour on the slides container class. That is the property that enables the container to scroll easily to the subsequent slide as an alternative of it shifting immediately. 

That is what our carousel would appear to be with out scroll-behaviour: easy

Scrollbar, or No Scrollbar?

Optionally, we will select to cover the scroll bar on our slidesContainer. The scrollbar is current within the demo however we might take away it by including:

Type the Carousel Buttons

Lastly, we’ll model our carousel buttons. We’ll set an opacity property on the buttons in order that they’re barely clear and stable on hover or focus:

3. Add Slider Performance With JavaScript

Time to place the enjoyable in practical! There are two elements of logic concerned on this slider:

  1. Displaying the subsequent slide when the ahead arrow is clicked
  2. Displaying the earlier slide when the backward arrow is clicked

First, get all the weather we’d like for the slider:

Now that’s performed, we’ll deal with shifting the slider. We will determine how the slider container strikes by utilizing the scrollLeft property.

“TheAspect.scrollLeft property will get or units the variety of pixels that a component’s content material is scrolled from its left edge.”- MDN

Since we need to show the subsequent slide when the ahead arrow is clicked, meaning we’ll have to scroll the slidesContainer to the left by the width of 1 slide. 

Breaking down what’s taking place on this code:

  • We add the clicking occasion listener to the subsequent button
  • When the button is clicked, we get the width worth of 1 slide
  • We enhance the scrollLeft property of the slidesContainer by the slideWidth.

We will apply this similar logic to the backward arrow button however with one small tweak:

With this technique, as an alternative of including to the scrollLeft property, we subtract from it by the width of a slide. This enables us transfer backwards when the again arrow is pressed.

All of the Code

Placing your entire JavaScript code collectively offers us, as promised, a practical slider with lower than 15 strains of JavaScript.


And that’s about it for the carousel.

After all, it’s doable to increase this implementation to incorporate a number of options like pagination or snap-to-slide however for the aim of this tutorial, we’ll cease right here. In the event you’re on the lookout for barely extra difficult implementations, take a look at this text:


We will be happy to hear your thoughts

Leave a reply

Enable registration in settings - general