Du kannst EventListener für die Events "mouseDown", "mouseUp" und "mouseMove" erstellen und die Position darin entsprechend anpassen. Beispiel auf JSBin.
<div id="beweglichesDiv" style="width:100px;height:100px;background:lightblue;"></div>
<script type="text/javascript">
var isDragging = false;
var offsetX, offsetY;
var beweglichesDiv = document.getElementById('beweglichesDiv');
beweglichesDiv.addEventListener('mousedown', (e) => {
isDragging = true;
offsetX = e.offsetX;
offsetY = e.offsetY;
});
document.addEventListener('mouseup', () => {
isDragging = false;
});
document.addEventListener('mousemove', (e) => {
if (isDragging) {
var x = e.clientX - offsetX;
var y = e.clientY - offsetY;
beweglichesDiv.style.transform = `translate(${x}px, ${y}px)`;
}
});
</script>