Хотя я согласен с тем, что библиотека - это то, что вам нужно, ответ на этот вопрос - «mmownown, onmousemove, onmouseup». Вы должны обработать эти три события.
В onmousedown вы найдете цель (event.target или похожую в разных браузерах) и установите draggedObject = event.target. Вы также начали бы обрабатывать событие onmousemove.
Всякий раз, когда срабатывает событие onmousemove, вы перемещаете перетаскиваемый элемент на основе разницы в положении с момента последнего запуска события onmousemove.
В событии onmouseup вы очистите переменную draggedObject и прекратите обработку onmousemove.
Это не очень перекрестный браузер, но это суть того, что вам нужно сделать для перетаскивания.