Перейти к содержимому

Атрибут draggable HTML

Атрибут draggable HTML является перечисляемым атрибутом и указывает, можно ли перетаскивать элемент или нет (с помощью встроенного поведения браузера или API перетаскивания HTML Drag and Drop). Этот атрибут часто используется в операциях перетаскивания.

Изображения и ссылки по умолчанию перетаскиваются. Для других элементов необходимо установить обработчик события ondragstart для начала перетаскивания и использовать event.dataTransfer. Вы также можете использовать draggable="false", чтобы явно отключить перетаскивание для изображений и ссылок.

Вы можете использовать этот атрибут на любом HTML-элементе. Он является частью Глобальных атрибутов.

Атрибут draggable может принимать следующие значения:

  • true: элемент можно перетаскивать.
  • false: элемент нельзя перетаскивать.
  • auto: используется поведение браузера по умолчанию.

Синтаксис

Синтаксис атрибута draggable HTML

html
<tag draggable="true|false|auto"></tag>

Пример атрибута draggable HTML:

Пример атрибута draggable HTML

html
<!DOCTYPE HTML>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      #rectId {
        width: 350px;
        height: 70px;
        padding: 10px;
        border: 1px solid #aaaaaa;
      }
    </style>
    <script>
      function allowDrop(event) {
        event.preventDefault(); // Allow dropping
      }
      function drag(event) {
        // Store the dragged element's ID in the dataTransfer object
        event.dataTransfer.setData("Text", event.target.id);
      }
      function drop(event) {
        var data = event.dataTransfer.getData("Text"); // Retrieve the ID
        event.target.appendChild(document.getElementById(data));
        event.preventDefault();
      }
    </script>
  </head>
  <body>
    <div id="rectId" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    <br />
    <p id="dragId" draggable="true" ondragstart="drag(event)">
      This is a draggable paragraph. Drag this item to the rectangle.
    </p>
  </body>
</html>

Примечание: Для современной разработки рекомендуется использовать addEventListener вместо встроенных обработчиков событий.

Practice

Что верно об атрибуте draggable HTML?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.