How To Create Image Slider Using Javascript

  Jan 2024
  Category: CSS
How To Create Image Slider Using Javascript

Welcome To ITSolutionsGuides,

Lets see How To Create Image Slider Using Javascript using it solutions guides tutorial to make image slider with controls to change the active image in the slider. The simplest and best way to create a image slider is using the javascript since we can use the onclick functions to detect the user interaction over the controls and then we can change the active image of the slider. lets see how to create image slider using javascript with a example.

Let's Start Coding

Lets create HTML and CSS for design and stylings and javascript for the functionality of the image slider. Lets see how javascript works here,

let slideIndex = 1;: Initializes a variable to keep track of the current slide index.

showSlides(slideIndex);: Calls the showSlides function to display the initial set of slides.

plusSlides(n), currentSlide(n), and showSlides(n): Functions to handle navigation and display of slides.

The script is responsible for controlling the visibility of slides and updating the active state of navigation dots.

<!DOCTYPE html>
<title>ITSolutionsGuides-Image Slider</title>

  <meta name="viewport" content="width=device-width, initial-scale=1">
    * {
      box-sizing: border-box

    body {
      font-family: Verdana, sans-serif;
      margin: 0

    .mySlides {
      display: none

    img {
      vertical-align: middle;

    /* Slideshow container */
    .slideshow-container {
      max-width: 1000px;
      position: relative;
      margin: auto;

    /* Next & previous buttons */
    .next {
      cursor: pointer;
      position: absolute;
      top: 50%;
      width: auto;
      padding: 16px;
      margin-top: -22px;
      color: white;
      font-weight: bold;
      font-size: 18px;
      transition: 0.6s ease;
      border-radius: 0 3px 3px 0;
      user-select: none;

    /* Position the "next button" to the right */
    .next {
      right: 0;
      border-radius: 3px 0 0 3px;

    /* On hover, add a black background color with a little bit see-through */
    .next:hover {
      background-color: rgba(0, 0, 0, 0.8);

    /* Caption text */
    .text {
      color: #f2f2f2;
      font-size: 15px;
      padding: 8px 12px;
      position: absolute;
      bottom: 8px;
      width: 100%;
      text-align: center;

    /* Number text (1/3 etc) */
    .numbertext {
      color: #f2f2f2;
      font-size: 12px;
      padding: 8px 12px;
      position: absolute;
      top: 0;

    /* The dots/bullets/indicators */
    .dot {
      cursor: pointer;
      height: 15px;
      width: 15px;
      margin: 0 2px;
      background-color: #bbb;
      border-radius: 50%;
      display: inline-block;
      transition: background-color 0.6s ease;

    .dot:hover {
      background-color: #717171;

    /* Fading animation */
    .fade {
      animation-name: fade;
      animation-duration: 1.5s;

    @keyframes fade {
      from {
        opacity: .4

      to {
        opacity: 1

    /* On smaller screens, decrease text size */
    @media only screen and (max-width: 300px) {

      .text {
        font-size: 11px


  <div class="slideshow-container">

    <div class="mySlides fade">
      <div class="numbertext">1 / 3</div>
      <img src="" style="width:100%">
      <div class="text">One</div>

    <div class="mySlides fade">
      <div class="numbertext">2 / 3</div>
      <img src="" style="width:100%">
      <div class="text">Two</div>

    <div class="mySlides fade">
      <div class="numbertext">3 / 3</div>
      <img src="" style="width:100%">
      <div class="text">Three</div>

    <a class="prev" onclick="plusSlides(-1)">❮</a>
    <a class="next" onclick="plusSlides(1)">❯</a>


  <div style="text-align:center">
    <span class="dot" onclick="currentSlide(1)"></span>
    <span class="dot" onclick="currentSlide(2)"></span>
    <span class="dot" onclick="currentSlide(3)"></span>

    let slideIndex = 1;

    function plusSlides(n) {
      showSlides(slideIndex += n);

    function currentSlide(n) {
      showSlides(slideIndex = n);

    function showSlides(n) {
      let i;
      let slides = document.getElementsByClassName("mySlides");
      let dots = document.getElementsByClassName("dot");
      if (n > slides.length) { slideIndex = 1 }
      if (n < 1) { slideIndex = slides.length }
      for (i = 0; i < slides.length; i++) {
        slides[i].style.display = "none";
      for (i = 0; i < dots.length; i++) {
        dots[i].className = dots[i].className.replace(" active", "");
      slides[slideIndex - 1].style.display = "block";
      dots[slideIndex - 1].className += " active";



We hope it helps everyone. Thanks for supporting ITSolutionsGuides and keep supporting us also follow us in social media platforms.

Subscribe for NewsLetter

Be the first to know about releases and tutorial news and solutions.

We care about your data in our privacy policy.


ITSolutionsGuides was started mainly to provide good and quality web solutions for all the developers. We provide tutorials to support all the developers and also we try to provide solutions to the errors we face while coding.

Contact US

ITSolutionsGuides, provide users with an easy-to-use form to reach out for support or inquiries.

whatsapp  gmail  instagram-new--v1  facebook-circled  twitter-circled  linkedin  github  pinterest 

Copyright © 2023 - 2024 All rights reserved | ITSolutionsGuides