JS властивість Event.dragend


Загальний опис

dragend — це подія, яка спрацьовує після того, як користувач завершив перетягування елемента. Подія dragend є частиною Drag and Drop API і дає змогу визначити, коли операція перетягування завершена, незалежно від того, чи була вона успішною (скидання елемента в цільовій зоні) чи скасованою (відпускання елемента поза цільовою зоною). Ця подія є корисною для очищення або відновлення стану елемента, з якого було розпочато перетягування, або для виконання додаткових дій, таких як запис у лог чи зворотний виклик.

Для використання події dragend розробник повинен додати обробник подій до елемента, який має бути перетягуваним. Наприклад:

const draggableElement = document.getElementById('draggable');

draggableElement.addEventListener('dragend', function(event) {
  event.target.style.opacity = '1';
  console.log('Перетягування завершено.');
});

У цьому прикладі, коли користувач завершить перетягування елемента з ідентифікатором draggable, його непрозорість буде відновлена до значення 1, а в консоль буде виведено повідомлення про завершення перетягування. Це може бути корисно для відновлення вихідного вигляду елемента або зміни стану після завершення перетягування.

Подія dragend працює в комбінації з іншими подіями, такими як dragstart (початок перетягування), drag (процес перетягування), dragover (елемент перетягується над допустимою областю), і drop (скидання елемента). Ці події дозволяють створювати повноцінні механізми перетягування та скидання на веб-сторінках, що забезпечує багатий користувацький досвід.

Подія dragend також може бути використана для видалення або зміни стилів, які були застосовані під час перетягування, таких як тіні, бордюри або фонові кольори. Це дозволяє розробникам надавати користувачам візуальні підказки під час перетягування, а потім відновлювати початковий стан елементів після завершення дії. Наприклад, можна видалити клас CSS, який додавав стиль тіні під час перетягування, або скинути координати елемента до вихідних значень.

автор: Bond

Порада

Переконайтеся, що ви також обробляєте події dragstart і dragend разом, щоб забезпечити плавний перехід між станами елементів. Наприклад, змініть зовнішній вигляд елемента на початку перетягування і відновіть його після завершення.

автор: Bond
Порада

Якщо ваш елемент змінює стиль під час перетягування (наприклад, стає напівпрозорим), використовуйте подію dragend для відновлення початкового стилю. Це забезпечить краще візуальне сприйняття для користувачів.

автор: Bond
Порада

Використовуйте dragend для скидання будь-яких тимчасових даних, що використовуються під час перетягування. Наприклад, ви можете очистити об'єкт DataTransfer або видалити тимчасові елементи, які були створені під час перетягування.

автор: Bond

Синтаксис

element.addEventListener('dragend', function(event) {
  // Ваш код тут
});

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
66 57 11.1 53 16
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
66 66 57 11.3
Підтримка: серверні переглядачі
Переглядач Node.js Deno
15.0.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі, коли користувач починає перетягувати елемент, його прозорість змінюється, щоб візуально показати стан перетягування. Після завершення перетягування прозорість повертається до вихідного значення, забезпечуючи плавний перехід між станами елемента.

HTML

<div id="draggableItem">Демонстраційний елемент</div>

JS

const item = document.getElementById('draggableItem');

item.addEventListener('dragstart', function(event) {
  event.target.style.opacity = '0.5';
});

item.addEventListener('dragend', function(event) {
  event.target.style.opacity = '1';
  console.log('Перетягування завершено, стиль відновлено.');
});
автор: Bond

У цьому прикладі, коли користувач починає перетягувати елемент, до нього додається тінь, щоб підкреслити перетягування. Після завершення перетягування тінь видаляється, а тимчасові дані очищуються, що забезпечує більш чистий і зрозумілий інтерфейс користувача.

HTML

<div id="draggableBox">Демонстраційний елемент</div>

JS

const draggableBox = document.getElementById('draggableBox');

draggableBox.addEventListener('dragstart', function(event) {
  event.target.style.boxShadow = '5px 5px 15px rgba(0, 0, 0, 0.3)';
  event.dataTransfer.setData('text/plain', 'Перетягується елемент.');
});

draggableBox.addEventListener('dragend', function(event) {
  event.target.style.boxShadow = 'none';
  console.log('Перетягування завершено, тінь видалено.');
});
автор: Bond

У цьому прикладі користувач може перетягувати різні елементи в цільову область. Подія dragend використовується для відновлення прозорості елемента після завершення перетягування. Якщо елемент успішно скинуто в область, збільшується лічильник, що відображає кількість успішних скидань. Кнопка "Очистити" дозволяє скинути лічильник і повернути елементи на початкову позицію, що робить інтерфейс більш динамічним і інтерактивним.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід