Bootstrap (parte 23) crear un slideshow o carrusel

Redes sociales

En este artículo aprenderás a crear un slideshow o carrusel. El plugin Carrusel o slideshow es un componente Bootstrap que muestra de forma cíclica una serie de elementos, generalmente imágenes, a veces con títulos explicativos, de forma similar a una presentación de diapositivas.

Crear un slideshow o carrusel

Cómo crear un slideshow o carrusel

Crear un slideshow o carrusel es sencillo, en el siguiente ejemplo, se muestra cómo crear uno.

Ejemplo

<!DOCTYPE html>
<html lang="es">
<head>
  <title>Ejemplo Bootstrap</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h2>Ejemplo de carrusel (slideshow)</h2>  
  <div id="myCarousel" class="carousel slide" data-ride="carousel">
    <!-- Indicadores -->
    <ol class="carousel-indicators">
      <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
      <li data-target="#myCarousel" data-slide-to="1"></li>
      <li data-target="#myCarousel" data-slide-to="2"></li>
    </ol>

    <!-- Entorno para las diapositivas -->
    <div class="carousel-inner">
      <div class="item active">
        <img src="01.jpg" alt="Paisaje-01" style="width:100%;">
      </div>

      <div class="item">
        <img src="02.jpg" alt="Paisaje-02" style="width:100%;">
      </div>
    
      <div class="item">
        <img src="03.jpg" alt="Paisaje-03" style="width:100%;">
      </div>
    </div>

    <!-- Controles izquierda - derecha -->
    <a class="left carousel-control" href="#myCarousel" data-slide="prev">
      <span class="glyphicon glyphicon-chevron-left"></span>
      <span class="sr-only">Anterior</span>
    </a>
    <a class="right carousel-control" href="#myCarousel" data-slide="next">
      <span class="glyphicon glyphicon-chevron-right"></span>
      <span class="sr-only">Siguiente</span>
    </a>
  </div>
</div>

</body>
</html>

Explicación

El <div> de primer nivel:

El carrusel requiere la utilización de un id (en el ejemplo id=”myCarousel”) para que los controles del carrusel funcionen correctamente.

La clase class=”carousel” indica que el <div> contiene un carrusel.

La clase .slide añade una transición CSS en forma de animación, lo que hace que las diapositivas se “deslicen” cuando se pasa de una a otra. Si no deseas este efecto omite esta clase.

El atributo data-ride=”carousel” dice a Bootstrap que empiece a animar el carrusel justo cuando se carga la página.

La parte de los indicadores:

Los indicadores, son los pequeños puntos en la parte inferior de cada diapositiva (indican cuántas diapositivas forman el carrusel y cuál es la que estás visualizando en ese momento).

Los indicadores se especifican en una lista ordenada con la clase .carousel-indicators.

El atributo data-target apunta al id del carrusel.

El atributo data-slide-to indica a que diapositiva ir cuando se hace clic en un indicador.

El entorno del carrusel

Las diapositivas se enmarcan en un <div> con la clase .carousel-inner.

El contenido de cada diapositiva se define en un <div> con la clase .item. Ese contenido puede ser una imagen o un texto.

La clase .active tiene que añadirse a una y sólo una de las diapositivas. Si no se hace el carrusel no será visible.

Los controles izquierda-derecha

Esta parte del código añade los botones “izquierda” y “derecha” que permiten al usuario ir de una diapositiva a otra de forma manual.

El atributo data-slide acepta los comandos “prev” o “next” para que el usuario pueda moverse a la diapositiva anterior o a la siguiente.

Agregar subtítulos a las diapositivas

Si añades <div class=”carousel-caption”> en el interior de cada <div class=”item”> puedes añadir subtítulos a cada diapositiva.

Ejemplo

<!DOCTYPE html>
<html lang="es">
<head>
  <title>Ejemplo Bootstrap</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h2>Ejemplo Carrusel</h2>
  <div id="myCarousel" class="carousel slide" data-ride="carousel">
    <!-- Indicadores -->
    <ol class="carousel-indicators">
      <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
      <li data-target="#myCarousel" data-slide-to="1"></li>
      <li data-target="#myCarousel" data-slide-to="2"></li>
    </ol>

    <!-- Entorno del carrusel -->
    <div class="carousel-inner">

      <div class="item active">
        <img src="01.jpg" alt="Paisaje-01" style="width:100%;">
        <div class="carousel-caption">
          <h3>paisaje 1</h3>
          <p>Green Park Season</p>
        </div>
      </div>

      <div class="item">
        <img src="02.jpg" alt="Paisaje-02" style="width:100%;">
        <div class="carousel-caption">
          <h3>Paisaje 2</h3>
          <p>Road forest season</p>
        </div>
      </div>
    
      <div class="item">
        <img src="03.jpg" alt="Paisaje-03" style="width:100%;">
        <div class="carousel-caption">
          <h3>Paisaje 03</h3>
          <p>Forest Mist nature</p>
        </div>
      </div>
  
    </div>

    <!-- Controles izquierda-derecha -->
    <a class="left carousel-control" href="#myCarousel" data-slide="prev">
      <span class="glyphicon glyphicon-chevron-left"></span>
      <span class="sr-only">Anterior</span>
    </a>
    <a class="right carousel-control" href="#myCarousel" data-slide="next">
      <span class="glyphicon glyphicon-chevron-right"></span>
      <span class="sr-only">Siguiente</span>
    </a>
  </div>
</div>

</body>
</html>

Redes sociales

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.