[JS-CSS]Carousel infini et « responsive »

NoSmoking

Page d'expérimentations et de tests pour le module Carousel infini et « responsive »

Classes CSS disponibles

Un certain nombre de paramètres peuvent être gérés en CSS en ajoutant directement une classe sur l'élément carousel :

Démo galerie images

Observations

En absence de directive max-width sur l'élément « wrapper », l'élément carousel prend toute la place disponible sur la ligne.

Si l'on veut que les images occupent le maximum d'espace disponible il faut leurs ajouter la déclaration width:100%.

Si les images de l'élément carousel-content sont déclarées avec une width:100% celles-ci s'adapteront à la largeur en respectant l'aspect-ratio.

Déplacements

Les déplacements peuvent se faire à l'aide :

Structure HTML

<div class="carousel" id="carousel">
  <div class="carousel-wrapper">
    <div class="carousel-content">
      <img src="../images/image_001.jpg" alt="Barque sans pêcheur">
      <img src="../images/image_002.jpg" alt="Transats plein soleil">
      <img src="../images/image_003.jpg" alt="Piscine à débordement">
      <img src="../images/image_004.jpg" alt="Eau turquoise">
      <img src="../images/image_005.jpg" alt="Coin détente">
      <img src="../images/image_006.jpg" alt="You know what ?">
    </div>
  </div>
</div>

Intégration

Il vous suffit d'ajouter ces lignes dans la partie <head> de votre document.

<link rel="stylesheet" href="carousel.css">
<script src="carousel-class.js"></script>

Syntaxe

const slide = new Carousel(idElement);
const slide = new Carousel(idElement [,options]);
const slide = new Carousel(idElement [,options][,callback]);

Paramètres

idElement
L'ID de l'élément à traiter,
optionsoptionnel

Objet permettant d'initialiser, ou modifier, les paramètres par défaut.

Exemple :

const slide = new Carousel("carousel", {
  delayDiapo: 1000,   // durée de la pause du diaporama fixée à 1000ms
  startAt: 4,         // l'image affichée sera la 4éme
  scrollBar: {
    top: 0,           // la barre d'avance est positionnée en haut
    color: "#F00"     // couleur de la barre d'avance en rouge
  },
});
delayDiapo

Durée de la pause entre images exprimée en millisecondes.

Les unités ne sont pas prises en compte.

Valeur par défaut : 3000

startAt

Position de l'image de départ.

Valeur par défaut : 0

displayArrow

Affiche/masque les fléches de direction.

Valeur par défaut : true

displayIndicator

Affiche/masque les indicateurs de progression.

Valeur par défaut : true

transition

Vitesse de translation de l'image exprimée en millisecondes.

Valeur par défaut : 500ms

callbackoptionnel
Fonction de « rappel » qui sera exécutée une fois le Carousel instancié.

Exemple :

const slide = new Carousel("carousel", (slide) => slide.runDiapo());

Valeur de retour

Une instance de la Class Carousel.

Méthodes

incImage()
Déplace sur l'image suivante.
decImage()
Déplace sur l'image précédente.
setImage(position[, transition])
Déplace sur l'image se trouvant à la position position.
Par défaut transition vaut true, si l'on ne veut pas de transition il faut passer la valeur false en paramètre.
runDiapo([param])
Lance le diaporama. Si le paramètre est omis le diaporama avance.
Pour faire reculer le diaporama il faut passer une valeur négative en paramètre.
stopDiapo()
Stoppe le diaporama.
Il est a noter que toutes actions sur le Carousel, clavier/souris, stoppe le diaporama.

Sources

Debug