Ответ 1
Это довольно просто:
- В событии
dragstart
вычислите смещение между тем, где пользователь нажал на перетаскиваемый элемент и верхний левый угол - Убедитесь, что событие
dragover
применяется ко всему документу, чтобы элемент можно было сбросить в любом месте - В событии
drop
используйте смещение, которое вы рассчитали, с помощьюclientX
иclientY
капли, чтобы определить, где разместить элемент
Здесь один подготовлен ранее. Для бонусных очков вы можете обновить верхнюю и левую позиции элемента в событии dragover, это полезно, если бит, который вы разрешаете перетаскивать, не является весь элемент, который нужно переместить.