如何在javascript中动态创建画布
how to create a canvas dynamically in javascript
我有一个画布,你可以用鼠标画东西。。当我单击按钮时,它必须捕获绘图并将其添加到画布下,然后清除上一个以绘制新的内容。。所以第一个画布必须是静态的,其他画布必须用我画的画动态创建。。我该怎么办?有人能帮助吗
这是jsfiddlehttp://jsfiddle.net/dQppK/378/
var canvas = document.getElementById("canvas"),
ctx = canvas.getContext("2d"),
painting = false,
lastX = 0,
lastY = 0;
您可以像创建任何元素一样创建新画布:
var newCanvas = document.createElement('canvas');
然后你可以在你的旧画布上复制:
newCanvas.width = oldCanvas.width;
newCanvas.height = oldCanvas.height;
oldCanvas.parentNode.replaceChild(newCanvas, oldCanvas);
ctx = newCanvas.getContext('2d');
但是,如果您只是想清理绘图表面,clearRect
有什么问题?
ctx.clearRect(0, 0, canvas.width, canvas.height);
或者,在您的情况下,另一个fillRect
。更新的演示
这是我为此使用的函数,它是我制作的库的一部分,用于简化关于画布的一些事情。我只是把它放在github上,以防其他功能可能有用,我以后必须做一个自述。。。
https://github.com/gamealchemist/CanvasLib
删除名称空间后,插入画布的代码如下:
// insert a canvas on top of the current document.
// If width, height are not provided, use all document width / height
// width / height unit is Css pixel.
// returns the canvas.
insertMainCanvas = function insertMainCanvas (_w,_h) {
if (_w==undefined) { _w = document.documentElement.clientWidth & (~3) ; }
if (_h==undefined) { _h = document.documentElement.clientHeight & (~3) ; }
var mainCanvas = ga.CanvasLib.createCanvas(_w,_h);
if ( !document.body ) {
var aNewBodyElement = document.createElement("body");
document.body = aNewBodyElement;
};
document.body.appendChild(mainCanvas);
return mainCanvas;
}
相关文章:
- 如何在javascript中创建动态json对象
- 如何创建动态ajax提交表单
- 如何在javascript中创建动态正则表达式
- 如何使用pouchdb创建动态查询(couchdb可能也是如此)
- 如何在jquery mobile中使用json文件创建动态下拉菜单
- 基于所选下拉列表值创建动态复选框
- 使用推动创建动态对象
- 在浏览器窗口中创建动态灵活的分割标记
- 将字符串与integer连接,用作jquery中的变量(创建动态变量)
- 创建动态javascript对象
- 如何使用指令属性值创建动态模板
- 使用 JavaScript 创建动态下拉列表
- 如何在创建动态 HTML 页面时使用日期选择器
- 使用javascript中的append创建动态下拉列表
- Jquery - 创建动态名称选择器
- 如何根据查询字符串值创建动态超链接
- 使用javascript创建动态多维关联数组
- 使用javascript创建动态二级下拉列表
- 在JavaScript中创建动态绑定
- 在JS中创建动态对象