¿Cómo diseñar un control deslizante de imagen usando jQuery?

Un contenedor de presentación de diapositivas que recorre una lista de imágenes en una página web. El siguiente artículo lo guiará para implementar un control deslizante de imágenes usando HTML, CSS y jQuery. El control deslizante de imágenes de jQuery contiene imágenes que las ejecutan usando los iconos anterior y siguiente. Las flechas anterior y siguiente se utilizan para desplazarse hacia adelante y hacia atrás en el evento de desplazamiento del mouse sobre las imágenes. El siguiente código de ejemplo se implementa de una manera simple y flexible para mostrar las imágenes una por una en el carrusel usando HTML, CSS y jQuery. Realizaremos la tarea en dos secciones, primero crearemos la estructura por HTML, diseñaremos la estructura por CSS y la haremos interactiva por jQuery.
Creación de la estructura: en esta sección, crearemos la estructura del control deslizante de la imagen. 
 

  • Código HTML: HTML se utiliza para crear la estructura de un control deslizante de imagen. 
     

html

<!DOCTYPE html>
<html>
  
<head>
    <title>
        How to Design Image
        Slider using jQuery ?
    </title>
     
    <meta name="viewport"
          content="width=device-width, initial-scale=1">
     
    <link rel="stylesheet" href=
"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
  
<body>
    <center>
        <h1 style="color:green">
            GeeksforGeeks
        </h1>
         
        <b>
            How to code Image
            Slider using jQuery
        </b>
         
        <br><br>
    </center>
      
    <!-- Image container of the image slider -->
    <div class="image-container">
        <div class="slide">
            <div class="slideNumber">1</div>
            <img src=
"https://www.geeksforgeeks.org/wp-content/uploads/html-768x256.png">
        </div>
        <div class="slide">
            <div class="slideNumber">2</div>
            <img src=
"https://www.geeksforgeeks.org/wp-content/uploads/CSS-768x256.png">
        </div>
        <div class="slide">
            <div class="slideNumber">3</div>
            <img src=
"https://www.geeksforgeeks.org/wp-content/uploads/jquery-banner.png">
        </div>
  
        <!-- Next and Previous icon to change images -->
        <a class="previous" onclick="moveSlides(-1)">
            <i class="fa fa-chevron-circle-left"></i>
        </a>
        <a class="next" onclick="moveSlides(1)">
            <i class="fa fa-chevron-circle-right"></i>
        </a>
    </div>
    <br>
  
    <div style="text-align:center">
        <span class="footerdot"
            onclick="activeSlide(1)">
        </span>
        <span class="footerdot"
            onclick="activeSlide(2)">
        </span>
        <span class="footerdot"
            onclick="activeSlide(3)">
        </span>
    </div>
</body>
  
</html>

Estructura de diseño: aquí haremos la parte de diseño del control deslizante de la imagen usando CSS y haremos que el control deslizante sea interactivo usando jQuery. 
 

  • Código CSS: Diseño de la estructura en base a etiquetas y clases de todos los elementos. 
     

CSS

<style>
    img {
        width: 100%;
    }
    .height {
        height: 10px;
    }
          
    /* Image-container design */
    .image-container {
        max-width: 800px;
        position: relative;
        margin: auto;
    }
          
    .next {
        right: 0;
    }
          
    /* Next and previous icon design */
    .previous,
    .next {
        cursor: pointer;
        position: absolute;
        top: 50%;
        padding: 10px;
        margin-top: -25px;
    }
          
    /* caption decorate */
    .captionText {
        color: #000000;
        font-size: 14px;
        position: absolute;
        padding: 12px 12px;
        bottom: 8px;
        width: 100%;
        text-align: center;
    }
          
     /* Slider image number */
    .slideNumber {
        background-color: #5574C5;
        color: white;
        border-radius: 25px;
        right: 0;
        opacity: .5;
        margin: 5px;
        width: 30px;
        height: 30px;
        text-align: center;
        font-weight: bold;
        font-size: 24px;
        position: absolute;
    }
    .fa {
        font-size: 32px;
    }
          
    .fa:hover {
        transform: rotate(360deg);
        transition: 1s;
        color: white;
    }
          
    .footerdot {
        cursor: pointer;
        height: 15px;
        width: 15px;
        margin: 0 2px;
        background-color: #bbbbbb;
        border-radius: 50%;
        display: inline-block;
        transition: background-color 0.5s ease;
    }
          
    .active,
    .footerdot:hover {
        background-color: black;
    }
          
</style>
  • Código jQuery: jQuery se utiliza para diseñar el control deslizante interactivo. 
     

javascript

<script>
    var slideIndex = 1;
    displaySlide(slideIndex);
  
    function moveSlides(n) {
        displaySlide(slideIndex += n);
    }
  
    function activeSlide(n) {
        displaySlide(slideIndex = n);
    }
  
    /* Main function */
    function displaySlide(n) {
        var i;
        var totalslides =
            document.getElementsByClassName("slide");
        var totaldots =
            document.getElementsByClassName("footerdot");
         
        if (n > totalslides.length) {
            slideIndex = 1;
        }
         
        if (n < 1) {
            slideIndex = totalslides.length;
        }
        for (i = 0; i < totalslides.length; i++) {
            totalslides[i].style.display = "none";
        }
        for (i = 0; i < totaldots.length; i++) {
            totaldots[i].className =
            totaldots[i].className.replace(" active", "");
        }
        totalslides[slideIndex - 1].style.display = "block";
        totaldots[slideIndex - 1].className += " active";
    }
</script>

Solución completa: en esta sección, combinaremos las secciones anteriores para formar un control deslizante de imagen. 
 

html

<!DOCTYPE html>
<html>
  
<head>
    <title>
        How to Design Image
        Slider using jQuery ?
    </title>
     
    <meta name="viewport"
          content="width=device-width, initial-scale=1">
     
    <link rel="stylesheet" href=
"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
     
    <style>
        img {
            width: 100%;
        }
        .height {
            height: 10px;
        }
          
        /* Image-container design */
        .image-container {
            max-width: 800px;
            position: relative;
            margin: auto;
        }
          
        .next {
            right: 0;
        }
          
        /* Next and previous icon design */
        .previous,
        .next {
            cursor: pointer;
            position: absolute;
            top: 50%;
            padding: 10px;
            margin-top: -25px;
        }
          
        /* caption decorate */
        .captionText {
            color: #000000;
            font-size: 14px;
            position: absolute;
            padding: 12px 12px;
            bottom: 8px;
            width: 100%;
            text-align: center;
        }
          
         /* Slider image number */
        .slideNumber {
            background-color: #5574C5;
            color: white;
            border-radius: 25px;
            right: 0;
            opacity: .5;
            margin: 5px;
            width: 30px;
            height: 30px;
            text-align: center;
            font-weight: bold;
            font-size: 24px;
            position: absolute;
        }
        .fa {
            font-size: 32px;
        }
          
        .fa:hover {
            transform: rotate(360deg);
            transition: 1s;
            color: white;
        }
          
        .footerdot {
            cursor: pointer;
            height: 15px;
            width: 15px;
            margin: 0 2px;
            background-color: #bbbbbb;
            border-radius: 50%;
            display: inline-block;
            transition: background-color 0.5s ease;
        }
          
        .active,
        .footerdot:hover {
            background-color: black;
        }
    </style>
</head>
  
<body>
    <center>
        <h1 style="color:green">
            GeeksforGeeks
        </h1>
         
        <b>
            How to code Image
            Slider using jQuery
        </b>
         
        <br><br>
    </center>
      
    <!-- Image container of the image slider -->
    <div class="image-container">
        <div class="slide">
            <div class="slideNumber">1</div>
            <img src=
"https://www.geeksforgeeks.org/wp-content/uploads/html-768x256.png">
        </div>
        <div class="slide">
            <div class="slideNumber">2</div>
            <img src=
"https://www.geeksforgeeks.org/wp-content/uploads/CSS-768x256.png">
        </div>
        <div class="slide">
            <div class="slideNumber">3</div>
            <img src=
"https://www.geeksforgeeks.org/wp-content/uploads/jquery-banner.png">
        </div>
  
        <!-- Next and Previous icon to change images -->
        <a class="previous" onclick="moveSlides(-1)">
            <i class="fa fa-chevron-circle-left"></i>
        </a>
        <a class="next" onclick="moveSlides(1)">
            <i class="fa fa-chevron-circle-right"></i>
        </a>
    </div>
    <br>
  
    <div style="text-align:center">
        <span class="footerdot"
            onclick="activeSlide(1)">
        </span>
        <span class="footerdot"
            onclick="activeSlide(2)">
        </span>
        <span class="footerdot"
            onclick="activeSlide(3)">
        </span>
    </div>
     
    <script>
        var slideIndex = 1;
        displaySlide(slideIndex);
  
        function moveSlides(n) {
            displaySlide(slideIndex += n);
        }
  
        function activeSlide(n) {
            displaySlide(slideIndex = n);
        }
  
        /* Main function */
        function displaySlide(n) {
            var i;
            var totalslides =
                document.getElementsByClassName("slide");
             
            var totaldots =
                document.getElementsByClassName("footerdot");
             
            if (n > totalslides.length) {
                slideIndex = 1;
            }
            if (n < 1) {
                slideIndex = totalslides.length;
            }
            for (i = 0; i < totalslides.length; i++) {
                totalslides[i].style.display = "none";
            }
            for (i = 0; i < totaldots.length; i++) {
                totaldots[i].className =
                totaldots[i].className.replace(" active", "");
            }
            totalslides[slideIndex - 1].style.display = "block";
            totaldots[slideIndex - 1].className += " active";
        }
    </script>
</body>
  
</html>

Producción: 
 

Publicación traducida automáticamente

Artículo escrito por geetanjali16 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *