要在画布上绘制矩形并在移动鼠标时实时预览矩形,你可以使用HTML5的<canvas>
元素结合JavaScript来实现。以下是一个简单的示例,展示了如何完成这个任务:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>绘制矩形</title>
<style>
canvas {
border: 1px solid black;
}
</style>
</head>
<body>
<canvas id="myCanvas" width="800" height="600"></canvas>
<script src="script.js"></script>
</body>
</html>
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
let isDrawing = false;
let startX, startY;
canvas.addEventListener('mousedown', (e) => {
isDrawing = true;
startX = e.offsetX;
startY = e.offsetY;
});
canvas.addEventListener('mousemove', (e) => {
if (!isDrawing) return;
ctx.clearRect(0, 0, canvas.width, canvas.height); // 清除画布
ctx.strokeRect(startX, startY, e.offsetX - startX, e.offsetY - startY); // 绘制矩形
});
canvas.addEventListener('mouseup', () => {
isDrawing = false;
});
canvas.addEventListener('mouseout', () => {
isDrawing = false;
});
<canvas>
元素,并为其设置宽度和高度。引入一个外部的JavaScript文件来处理绘图逻辑。<canvas>
元素的引用,并创建一个2D渲染上下文。mousedown
事件:当鼠标按下时,记录起始坐标,并设置isDrawing
为true
。mousemove
事件:当鼠标移动时,如果正在绘制,则清除画布并绘制一个新的矩形,矩形的左上角是起始坐标,宽度和高度是当前鼠标位置与起始坐标的差值。mouseup
和mouseout
事件:当鼠标释放或移出画布时,停止绘制。这种实时预览的绘图功能常用于在线绘图工具、图形编辑器或任何需要用户交互式绘制图形的场景。
通过这种方式,用户可以在画布上自由地绘制矩形,并在移动鼠标时实时看到矩形的预览效果。
领取专属 10元无门槛券
手把手带您无忧上云