Glisser-déposer (Draggable)

Liste réordonnables par glisser-déposer. Permet aux utilisateurs de réorganiser des éléments de manière intuitive.

Avec poignée

Élément 1
Élément 2
Élément 3
Élément 4
<div class="bj-draggable" data-bj-draggable>
  <div class="bj-draggable__item" data-bj-draggable-item tabindex="0" role="listitem">
    <span class="bj-draggable__handle" aria-hidden="true"></span>
    <span class="bj-draggable__content">Élément 1</span>
  </div>
  <div class="bj-draggable__item" data-bj-draggable-item tabindex="0" role="listitem">
    <span class="bj-draggable__handle" aria-hidden="true"></span>
    <span class="bj-draggable__content">Élément 2</span>
  </div>
  <div class="bj-draggable__item" data-bj-draggable-item tabindex="0" role="listitem">
    <span class="bj-draggable__handle" aria-hidden="true"></span>
    <span class="bj-draggable__content">Élément 3</span>
  </div>
</div>

Liste simple

Sans poignée 1
Sans poignée 2
Sans poignée 3
<div class="bj-draggable" data-bj-draggable>
  <div class="bj-draggable__item" data-bj-draggable-item tabindex="0" role="listitem">
    <span class="bj-draggable__content">Sans poignée 1</span>
  </div>
  <div class="bj-draggable__item" data-bj-draggable-item tabindex="0" role="listitem">
    <span class="bj-draggable__content">Sans poignée 2</span>
  </div>
</div>

État désactivé

Élément non déplaçable 1
Élément non déplaçable 2
<div class="bj-draggable bj-draggable--disabled" data-bj-draggable data-bj-draggable-disabled>
  <div class="bj-draggable__item" data-bj-draggable-item>
    <span class="bj-draggable__handle" aria-hidden="true"></span>
    <span class="bj-draggable__content">Élément non déplaçable</span>
  </div>
</div>

Classes CSS

ClasseDescription
.bj-draggableConteneur principal de la liste réordonnable
.bj-draggable__itemÉlément individuel déplaçable
.bj-draggable__handlePoignée de glissement
.bj-draggable__contentZone de contenu de l'élément
.bj-draggable__item--draggingÉlément en cours de déplacement
.bj-draggable__item--overÉlément survolé lors du glissement
.bj-draggable--disabledModificateur : liste désactivée

Attributs data

ClasseDescription
data-bj-draggableActive le comportement draggable sur le conteneur
data-bj-draggable-itemMarque un enfant comme élément déplaçable
data-bj-draggable-handleSélecteur CSS de la poignée (optionnel)
data-bj-draggable-disabledDésactive le glisser-déposer

Accessibilité

Chaque élément possède role="listitem" et un tabindex. Les touches Flèche haut et Flèche bas permettent de réordonner les éléments au clavier. L'attribut aria-label identifie chaque élément.