Is it possible to create an HTML canvas without a DOM element?(是否可以创建没有 DOM 元素的 HTML 画布?)
问题描述
我想要一个 HTML 画布上下文,我可以在屏幕外绘制和读取(在此示例中,编写文本和读取创建的形状,但这是一个普遍的问题).我可能还想使用画布作为屏幕外帧缓冲区.
I'd like to have an HTML canvas context that I can paint to and read off-screen (in this example, writing text and reading the shape that is created, but it's a general question). I may also want to use a canvas as an off-screen frame-buffer.
我想我可以创建一个隐藏的 DOM 元素,但我宁愿从 JavaScript 创建它(我可能想在运行时创建和销毁一些画布).
I suppose I could create a hidden DOM element but I'd rather create it from JavaScript (I may want to create and destroy a number of canvas at runtime).
可能吗?
推荐答案
您可以使用 document.createElement
创建一个新的 canvas
元素:
You can create a new canvas
element with document.createElement
:
var canvas = document.createElement('canvas');
然后从中获取上下文.只需确保设置了 width
和 height
.您不必将画布添加到树中即可使其工作:
and then get the context from it. Just make sure you set the width
and height
. You don't have to add the canvas to the tree in order to make it work:
演示
但您肯定必须创建该节点.不过,您可以为此创建一个函数:
But you definitely have to create that node. You could create a function for that though:
function createContext(width, height) {
var canvas = document.createElement('canvas');
canvas.width = width;
canvas.height = height;
return canvas.getContext("2d");
}
但这就是我的能力结束的地方...我不知道您是否可以以某种方式将上下文转移到另一个上下文或画布...
But that is where my competency ends... whether you can somehow transfer a context to another context or canvas, I don't know...
这篇关于是否可以创建没有 DOM 元素的 HTML 画布?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:是否可以创建没有 DOM 元素的 HTML 画布?


基础教程推荐
- 如何使用 CSS 显示和隐藏 div? 2022-01-01
- 为什么我在 Vue.js 中得到 ERR_CONNECTION_TIMED_OUT? 2022-01-01
- Javascript 在多个元素上单击事件侦听器并获取目标 2022-01-01
- 每次设置弹出窗口的焦点 2022-01-01
- WatchKit 支持 html 吗?有没有像 UIWebview 这样的控制器? 2022-01-01
- 如何使用sencha Touch2在单页中显示列表和其他标签 2022-01-01
- 什么是不使用 jQuery 的经验技术原因? 2022-01-01
- jQuery File Upload - 如何识别所有文件何时上传 2022-01-01
- Node.js 有没有好的索引/搜索引擎? 2022-01-01
- 如何在特定日期之前获取消息? 2022-01-01