canvas绘制画框并获取坐标点
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
canvas {
border: 1px solid black;
}
</style>
</head>
<body>
<!--画布-->
<canvas id="myCanvas" width="800" height="600"></canvas>
<script>
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
var isDragging = false;
var startX, startY, endX, endY;
canvas.addEventListener('mousedown', function(e) {
isDragging = true;
startX = e.offsetX;
startY = e.offsetY;
});
canvas.addEventListener('mousemove', function(e) {
if (!isDragging) return;
ctx.clearRect(0, 0, canvas.width, canvas.height);
endX = e.offsetX;
endY = e.offsetY;
drawRect(startX, startY, endX, endY);
});
canvas.addEventListener('mouseup', function() {
isDragging = false;
console.log("绘制的矩形坐标[" + startX + "," + startY + "] 至 [" + endX + "," + endY + "]");
});
function drawRect(x1, y1, x2, y2 , strokeColor = 'red') {
ctx.strokeStyle = strokeColor;
ctx.strokeRect(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x2 - x1), Math.abs(y2 - y1));
}
</script>
</body>
</html>