监听在canvas中鼠标按下的位置

该代码片段展示了如何在HTML5canvas上添加鼠标按下事件监听器,通过计算event.clientX和event.clientY获取用户点击位置相对于canvas的坐标。
摘要由CSDN通过智能技术生成
   canvas.addEventListener("mousedown", function (e) {
       var rect = canvas.getBoundingClientRect();
        var x = event.clientX - rect.left;
        var y = event.clientY - rect.top;
      });

您可以使用HTML5的Canvas元素和JavaScript来实现在图片上绘制矩形的功能。下面是一个简单的示例代码: HTML代码: ``` <canvas id="myCanvas"></canvas> ``` JavaScript代码: ```javascript // 获取Canvas元素和上下文 let canvas = document.getElementById("myCanvas"); let ctx = canvas.getContext("2d"); // 加载图片 let img = new Image(); img.src = "path/to/image.jpg"; img.onload = function() { // 将图片绘制到Canvas上 ctx.drawImage(img, 0, 0, canvas.width, canvas.height); // 绑定鼠标事件监听鼠标按下、移动和松开事件 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; let currentX = e.offsetX; let currentY = e.offsetY; // 清除Canvas上之前的矩形 ctx.clearRect(0, 0, canvas.width, canvas.height); ctx.drawImage(img, 0, 0, canvas.width, canvas.height); // 绘制当前的矩形 let width = currentX - startX; let height = currentY - startY; ctx.strokeStyle = 'red'; ctx.strokeRect(startX, startY, width, height); }); canvas.addEventListener('mouseup', (e) => { isDrawing = false; }); } ``` 这段代码会先加载一张图片,并将其绘制到Canvas上。然后监听鼠标事件,并在鼠标移动时绘制一个矩形,直到鼠标松开停止绘制。注意要在绘制新的矩形之前清除之前绘制的矩形,否则会出现重叠的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值