是否可以使用鼠标动态创建“html5画布”

Is it possible to create `html5 canvas` dynamically with the mouse?

本文关键字:html5 画布 创建 动态 可以使 鼠标 是否      更新时间:2023-09-26

是否可以用鼠标动态创建HTML5 canvas

例如:我想用鼠标绘制HTML5画布,然后将内容加载到不同的画布中。

3个小时,我在互联网上搜索演示,但我没有发现这种可能性。

您可以在鼠标位置创建画布

http://jsfiddle.net/v4nm487b/

document.onmousedown=mouseDown;
document.onmouseup=mouseUp;
var x1,y1;
function mouseDown(e){
    x1=e.clientX;
    y1=e.clientY;
}
function mouseUp(e){
    var can = document.createElement("CANVAS");
    can.style.position = "absolute";
    can.style.left = x1+"px";
    can.style.top = y1+"px";
    can.width=Math.abs(x1-e.clientX);
    can.height=Math.abs(y1-e.clientY);
    can.style.border="1px solid black"
    document.body.appendChild(can);
}

但是加载内容是什么意思?

编辑:动态内容

您可以为画布提供一个 ID 并使用它来绘制

在此示例中,创建的画布具有 id canN (can0,can1,canN)

如果我们在数字键盘上按 0(键码 48),我填充画布罐(48-48)= can0

这当然最多只能工作 9 个,但它确实证明它可以(vas) 完成

http://jsfiddle.net/v4nm487b/6/

我不能肯定地说,因为我从未尝试过,但您可能会查看鼠标按下和鼠标向上事件。您可以创建一个用户可以拖入的元素并侦听其上的事件,如下所示:

var startX, startY, endX, endY;
$('#drag')
  .mousedown(function(e) {
    startX = e.pageX;
    startY = e.pageY;
    $('#start').text(startX + ", " + startY);
  })
  .mouseup(function(e) {
    endX = e.pageX;
    endY = e.pageY;
    $('#end').text(endX + ", " + endY);
  });
#drag {
  width: 100%;
  height: 500px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="start"></div>
<div id="end"></div>
<div id="drag"></div>

这为您提供了拖动的开始和结束位置,然后您可以根据这些坐标附加具有一些绝对位置的画布元素。希望这有帮助!