Source

Carrousel

Un composant de diaporama pour faire défiler les éléments (images ou diapositives de texte) comme un carrousel.

Comment ça fonctionne

Le carrousel est un diaporama permettant de parcourir une série de contenus, construit avec des transformations CSS 3D et un peu de JavaScript. Il fonctionne avec une série d'images, de texte ou de balisage personnalisé. Il inclut également la prise en charge des commandes et des indicateurs précédents/suivants.

Dans les navigateurs où l' API de visibilité de la page est prise en charge, le carrousel évitera de glisser lorsque la page Web n'est pas visible pour l'utilisateur (par exemple, lorsque l'onglet du navigateur est inactif, la fenêtre du navigateur est réduite, etc.).

Veuillez noter que les carrousels imbriqués ne sont pas pris en charge et que les carrousels ne sont généralement pas conformes aux normes d'accessibilité.

Enfin, si vous construisez notre JavaScript à partir de la source, cela nécessiteutil.js .

Exemple

Les carrousels ne normalisent pas automatiquement les dimensions des diapositives. En tant que tel, vous devrez peut-être utiliser des utilitaires supplémentaires ou des styles personnalisés pour dimensionner correctement le contenu. Bien que les carrousels prennent en charge les contrôles et indicateurs précédents/suivants, ils ne sont pas explicitement requis. Ajoutez et personnalisez comme bon vous semble.

La .activeclasse doit être ajoutée à l'une des diapositives , sinon le carrousel ne sera pas visible. Veillez également à définir un identifiant unique sur les .carouselcommandes facultatives, en particulier si vous utilisez plusieurs carrousels sur une seule page. Les éléments de contrôle et d'indicateur doivent avoir un data-targetattribut (ou hrefpour les liens) qui correspond à l'id de l' .carouselélément.

Diapositives uniquement

Voici un carrousel avec des diapositives uniquement. Notez la présence de .d-blocket .w-100sur les images du carrousel pour empêcher l'alignement des images par défaut du navigateur.

<div id="carouselExampleSlidesOnly" class="carousel slide" data-ride="carousel">
  <div class="carousel-inner">
    <div class="carousel-item active">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=777&fg=555&text=First slide" alt="First slide">
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=666&fg=444&text=Second slide" alt="Second slide">
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=555&fg=333&text=Third slide" alt="Third slide">
    </div>
  </div>
</div>

Avec commandes

Ajout des contrôles précédents et suivants :

<div id="carouselExampleControls" class="carousel slide" data-ride="carousel">
  <div class="carousel-inner">
    <div class="carousel-item active">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=777&fg=555&text=First slide" alt="First slide">
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=666&fg=444&text=Second slide" alt="Second slide">
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=555&fg=333&text=Third slide" alt="Third slide">
    </div>
  </div>
  <a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>

Avec indicateurs

Vous pouvez également ajouter les indicateurs au carrousel, ainsi que les commandes.

<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
  <ol class="carousel-indicators">
    <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
    <li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
    <li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
  </ol>
  <div class="carousel-inner">
    <div class="carousel-item active">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=777&fg=555&text=First slide" alt="First slide">
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=666&fg=444&text=Second slide" alt="Second slide">
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=555&fg=333&text=Third slide" alt="Third slide">
    </div>
  </div>
  <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>

Avec légendes

Ajoutez facilement des légendes à vos diapositives avec l' .carousel-captionélément dans n'importe quel fichier .carousel-item. Ils peuvent être facilement masqués dans des fenêtres plus petites, comme illustré ci-dessous, à l'aide d'utilitaires d'affichage facultatifs . Nous les cachons initialement avec .d-noneet les ramenons sur les appareils de taille moyenne avec .d-md-block.

<div class="carousel-item">
  <img src="..." alt="...">
  <div class="carousel-caption d-none d-md-block">
    <h5>...</h5>
    <p>...</p>
  </div>
</div>

Fondu enchaîné

Ajoutez .carousel-fadeà votre carrousel pour animer des diapositives avec une transition en fondu au lieu d'une diapositive.

<div id="carouselExampleFade" class="carousel slide carousel-fade" data-ride="carousel">
  <div class="carousel-inner">
    <div class="carousel-item active">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=777&fg=555&text=First slide" alt="First slide">
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=666&fg=444&text=Second slide" alt="Second slide">
    </div>
    <div class="carousel-item">
      <img class="d-block w-100" src=".../800x400?auto=yes&bg=555&fg=333&text=Third slide" alt="Third slide">
    </div>
  </div>
  <a class="carousel-control-prev" href="#carouselExampleFade" role="button" data-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="carousel-control-next" href="#carouselExampleFade" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>

Usage

Via les attributs de données

Utilisez les attributs de données pour contrôler facilement la position du carrousel. data-slideaccepte les mots clés prevou next, qui modifient la position de la diapositive par rapport à sa position actuelle. Vous pouvez également utiliser data-slide-topour transmettre un index de diapositive brut au carrousel data-slide-to="2", ce qui déplace la position de la diapositive vers un index particulier commençant par 0.

L' data-ride="carousel"attribut est utilisé pour marquer un carrousel comme s'animant à partir du chargement de la page. Il ne peut pas être utilisé en combinaison avec une initialisation JavaScript explicite (redondante et inutile) du même carrousel.

Via Javascript

Appelez le carrousel manuellement avec :

$('.carousel').carousel()

Choix

Les options peuvent être transmises via des attributs de données ou JavaScript. Pour les attributs de données, ajoutez le nom de l'option à data-, comme dans data-interval="".

Nom Taper Défaut La description
intervalle Numéro 5000 La durée de délai entre le cycle automatique d'un élément. Si false, le carrousel ne cyclera pas automatiquement.
clavier booléen vrai Indique si le carrousel doit réagir aux événements du clavier.
pause chaîne | booléen "flotter"

Si réglé sur "hover", interrompt le cycle du carrousel sur mouseenteret reprend le cycle du carrousel sur mouseleave. S'il est défini sur false, passer la souris sur le carrousel ne le mettra pas en pause.

Sur les appareils tactiles, lorsqu'il est réglé sur "hover", le cycle s'interrompt touchend(une fois que l'utilisateur a fini d'interagir avec le carrousel) pendant deux intervalles, avant de reprendre automatiquement. Notez que cela s'ajoute au comportement de la souris ci-dessus.

balade chaîne de caractères faux Lance automatiquement le carrousel une fois que l'utilisateur a parcouru manuellement le premier élément. Si "carrousel", lance automatiquement le carrousel au chargement.
envelopper booléen vrai Si le carrousel doit tourner en continu ou avoir des arrêts brusques.

Méthodes

Méthodes et transitions asynchrones

Toutes les méthodes API sont asynchrones et démarrent une transition . Ils reviennent à l'appelant dès que la transition est commencée mais avant qu'elle ne se termine . De plus, un appel de méthode sur un composant en transition sera ignoré .

Consultez notre documentation JavaScript pour plus d'informations.

.carousel(options)

Initialise le carrousel avec des options facultatives objectet commence à parcourir les éléments.

$('.carousel').carousel({
  interval: 2000
})

.carousel('cycle')

Fait défiler les éléments du carrousel de gauche à droite.

.carousel('pause')

Empêche le carrousel de parcourir les éléments.

.carousel(number)

Fait passer le carrousel à une image particulière (base 0, similaire à un tableau). Renvoie à l'appelant avant que l'élément cible n'ait été affiché (c'est-à-dire avant que l' slid.bs.carouselévénement ne se produise).

.carousel('prev')

Passe à l'élément précédent. Revient à l'appelant avant que l'élément précédent n'ait été affiché (c'est-à-dire avant que l' slid.bs.carouselévénement ne se produise).

.carousel('next')

Passe à l'élément suivant. Revient à l'appelant avant que l'élément suivant n'ait été affiché (c'est-à-dire avant que l' slid.bs.carouselévénement ne se produise).

.carousel('dispose')

Détruit le carrousel d'un élément.

Événements

La classe de carrousel de Bootstrap expose deux événements pour se connecter à la fonctionnalité de carrousel. Les deux événements ont les propriétés supplémentaires suivantes :

  • direction: La direction dans laquelle le carrousel glisse ( "left"ou "right").
  • relatedTarget: L'élément DOM qui est mis en place en tant qu'élément actif.
  • from: L'index de l'élément courant
  • to: L'index de l'élément suivant

Tous les événements du carrousel sont déclenchés sur le carrousel lui-même (c'est-à-dire sur le <div class="carousel">).

Type d'événement La description
diapositive.bs.carrousel Cet événement se déclenche immédiatement lorsque la slideméthode d'instance est invoquée.
glissé.bs.carrousel Cet événement est déclenché lorsque le carrousel a terminé sa transition de diapositive.
$('#myCarousel').on('slide.bs.carousel', function () {
  // do something…
})

Modifier la durée de la transition

La durée de transition .carousel-itempeut être modifiée avec la $carousel-transitionvariable Sass avant la compilation ou les styles personnalisés si vous utilisez le CSS compilé. Si plusieurs transitions sont appliquées, assurez-vous que la transition de transformation est définie en premier (par exemple, transition: transform 2s ease, opacity .5s ease-out).