javascript - 单击 Canvas 上绘制圆圈

标签 javascript css html canvas

您好,我正在尝试创建一个代码,当用户单击 Canvas 元素时绘制一个圆圈。因此,当用户单击 Canvas 元素时,会在 Canvas 内绘制一个圆圈。

var canvas =document.querySelector('canvas');
var c = canvas.getContext('2d');


var putLeaves = function() {
c.beginPath();
c.arc(300,300,30,0,Math.PI*2,false);
c.fillStyle ="#d57b85"
c.fill
}

canvas.addEventListner('mousedown', putLeaves)
#canvas{
position: absolute;
left: 44%;
top: 15%;
margin: 0;
border: 1px solid black;
}
<canvas id="canvas" width="300" height="200"></canvas>

最佳答案

您将需要使用此处找到的 Element.getBoundingClientRect 方法:https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect

<script>
var canvas =document.querySelector('canvas');
var c = canvas.getContext('2d');


var putLeaves = function(e) {
  var bounds = e.target.getBoundingClientRect();
  var x = e.clientX - bounds.left;
  var y = e.clientY - bounds.top;

  c.beginPath();
  c.arc(x,y,30,0,Math.PI*2,false);
  c.fillStyle ="#d57b85"
  c.fill
}

canvas.addEventListener('mousedown', putLeaves)
</script>

关于javascript - 单击 Canvas 上绘制圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47096964/

相关文章:

html - 无法让 div 显示在屏幕的最顶部

javascript - 只在某个地方制作一个带有页面的div滚动?

javascript - 按类名对 onclick 上的项目进行计数

jquery - 使用 jquery 获取相等的列

html - 简单的 Angular 路由更改动画在移动设备上不起作用?

html - Rails form_tag 行字段太大

javascript - 如何使用javascript将带有变量的多行html输出到div中?

javascript - 在 JavaScript 双 for 循环中更新 HTML 进度条?

javascript - WebRTC发送字符串消息

javascript - Snap.svg 和动态文本