@TheCrossCarrier

Как корректно вызвать событие Drag?

Контекст: реализация перетаскивания элементов посредством HTML 5 Drag'n'Drop API

Задачей стоит убрать фантомную копию перетаскиваемого элемента, которая следует за мышью при перетаскивании элемента с атрибутом draggable="true". Вместо неё нужно чтобы сам элемент двигался за мышью.

В качестве решения было придумано вызвать метод event.preventDefault в обработке события 'dragstart'. Но таким образом событие 'drag'для этого элемента не вызывается.
Пробовал через dispatchEvent, но не очень получилось.

Соответственно, вопрос: как искусственно вызвать событие 'drag' в обработке события 'dragstart'или же решить поставленную задачу иным способом?

Спасибо.
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
elem.addEventListener('dragstart', function(evt) {
  // прозрачная картинка вместо "призрака"
  const img = new Image();
  img.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=';
  evt.dataTransfer.setDragImage(img, 0, 0);  
});

Ну и по событию drag можете двигать за курсором сам объект.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект