enum Valeurs : true,false

draggable

Indique si l'élément peut être glissé-déposé avec l'API Drag and Drop HTML5.

Description

L’attribut draggable contrôle si un élément peut être glissé via l’API Drag and Drop native du navigateur. Par défaut, les liens (<a>) et les images (<img>) sont déjà draggables. Pour les autres éléments, draggable="true" active cette capacité.

Syntaxe

<div draggable="true">Glissez-moi</div>
<img src="photo.jpg" draggable="false" alt="Photo non déplaçable">

Exemples

Élément glissable avec gestion des événements :

<div draggable="true" id="item" style="cursor: grab; padding: 1rem; border: 1px solid #ccc">
  Élément déplaçable
</div>

<div id="zone-depot" style="padding: 2rem; border: 2px dashed #999">
  Zone de dépôt
</div>

<script>
  const item = document.getElementById('item');
  const zone = document.getElementById('zone-depot');

  item.addEventListener('dragstart', (e) => {
    e.dataTransfer.setData('text/plain', item.id);
  });

  zone.addEventListener('dragover', (e) => e.preventDefault());
  zone.addEventListener('drop', (e) => {
    e.preventDefault();
    const id = e.dataTransfer.getData('text/plain');
    zone.appendChild(document.getElementById(id));
  });
</script>

Valeurs

ValeurDescription
trueL’élément est déplaçable par glisser-déposer
falseL’élément n’est pas déplaçable

Notes

draggable n’est pas booléen : contrairement à hidden ou disabled, draggable requiert explicitement "true" ou "false" — la présence seule de l’attribut ne suffit pas.

Curseur : ajouter cursor: grab en CSS pour indiquer visuellement que l’élément est déplaçable.

Accessibilité : le drag-and-drop n’est pas accessible au clavier nativement. Toujours fournir une alternative (boutons Monter/Descendre, etc.).

Support navigateurs

Chrome4+ · Firefox2+ · Safari5+ · Edge12+