<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Drag and Drop Example</title>
</head>
<body>
<div>
<canvas id="canvas" width="500" height="500"></canvas>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var draggedObject = null;
var objects = [
{ x: 50, y: 50, width: 50, height: 50, color: 'red' },
{ x: 150, y: 100, width: 50, height: 50, color: 'blue' },
{ x: 250, y: 150, width: 50, height: 50, color: 'green' }
];
function drawObjects() {
context.clearRect(0, 0, canvas.width, canvas.height);
for (var i = 0; i < objects.length; i++) {
var obj = objects[i];
context.fillStyle = obj.color;
context.fillRect(obj.x, obj.y, obj.width, obj.height);
}
}
function getMousePos(e) {
var rect = canvas.getBoundingClientRect();
return {
x: e.clientX - rect.left,
y: e.clientY - rect.top
};
}
canvas.addEventListener('mousedown', function (e) {
var mousePos = getMousePos(e);
for (var i = objects.length - 1; i >= 0; i--) {
var obj = objects[i];
if (mousePos.x >= obj.x && mousePos.x <= obj.x + obj.width &&
mousePos.y >= obj.y && mousePos.y <= obj.y + obj.height) {
draggedObject = obj;
break;
}
}
});
canvas.addEventListener('mousemove', function (e) {
if (draggedObject !== null) {
var mousePos = getMousePos(e);
draggedObject.x = mousePos.x - draggedObject.width / 2;
draggedObject.y = mousePos.y - draggedObject.height / 2;
drawObjects();
}
});
canvas.addEventListener('mouseup', function () {
draggedObject = null;
});
drawObjects();
});
</script>
</body>
</html>


