是否可以使用鼠标动态创建“html5画布”
Is it possible to create `html5 canvas` dynamically with the mouse?
是否可以用鼠标动态创建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>
这为您提供了拖动的开始和结束位置,然后您可以根据这些坐标附加具有一些绝对位置的画布元素。希望这有帮助!
相关文章:
- JavaScript HTML5画布未显示
- html5画布动画无法正常工作
- 在HTML5画布上添加按钮和控件
- 如何在运行时在HTML5画布中绘制正方形
- Unicode字符未在HTML5画布中正确呈现
- 鼠标点击HTML5画布绘制矩形
- html5画布在同一行中写入多个字体
- HTML5画布-暂停时的运行时间
- 使用JavaScript和HTML5画布进行冲突检测
- 什么是HTML5画布标记的回退
- 如何在html5画布中绘制圆形作为单独的画布
- 如何在flash html5画布项目中动态更改文本颜色
- HTML5画布支持和Android Webview
- html5画布中的套索工具
- 什么'是在HTML5画布中创建关键事件的最佳方式
- Javascript:延迟在html5画布上循环绘制
- 如何在HTML5画布上呈现音频波形
- HTML5画布动画滑块
- 如何将 html5 画布另存为窗口 8 Metro 应用程序中的图像文件
- HTML5-画布元素&自定义光标