Це вбудований інтерфейс програмування програм (API) у веб-браузерах, який дозволяє розробникам створювати інтерфейси, які підтримують перетягування елементів. Цей API робить процес реалізації перетягування та скидання об'єктів більш простим та стандартизованим, що спрощує створення інтерактивних елементів на веб-сторінці.
Для елемента, що переміщається, обов'язково додайте атрибут draggable зі значенням true. Це дозволить йому працювати з drag and drop API.
draggable="true": атрибут, який робить елемент, що перетягується.
event.dataTransfer: об'єкт, який зберігає дані, що передаються під час перетягування.
МетодsetData задає дані, а getData їх витягує.
event.preventDefault(): метод, який запобігає стандартній поведінці браузера (наприклад, відкриття файлу під час перетягування) і дозволяє скидання елемента.
CSS класи:
Зміна стилю елемента, що перетягується:
Щоб повернути об'єкт назад у вихідне місце при скиданні в невідповідне місце або після успішного скидання, можна додати початкову позицію для елемента, що перетягується, і повертати його, якщо скидання сталося поза зоною. Для цього потрібно використовувати додаткову логіку у подіях dragend та drop. Елемент повертається на вихідне місце:
В обробнику dragend перевіряється, де знаходиться елемент після завершення перетягування. Якщо вона не знаходиться в зоні скидання (dropzone), то елемент повертається у вихідний контейнер (origin).
Збереження вихідної позиції:
Використовується змінна початкова позиція, щоб запам'ятати вихідне батьківське положення елемента.
Відстежуватимемо, чи був елемент успішно скинутий у зону. Якщо ні, елемент буде повернено у вихідне місце.
Прапор droppedInZone:
Цей прапор використовується для відстеження , чи елемент скинутий у зону. Він скидається в false на початку перетягування і встановлюється в true при успішному скиданні в зону.
Обробник dragend :
Перевіряє значення, що викинуто взоні. Якщо елемент не був скинутий у зону (прапор дорівнює false), елемент повертається у контейнер origin.