可以从Canvas构造函数创建HTML5 Canvas元素

Ove*_*ter 49 javascript html5 canvas

我希望能够从构造函数中创建Canvas元素,以便我可以创建这样的函数.

function createCanvasContext(height,width)
{
   var body =  document.getElementsById('body')[0];
   var canvas = new Canvas();
   canvas.height=height;
   canvas.width = width;
   var context = canvas.getContext('2d');
   body.appendChild(canvas);
   return context;
}
Run Code Online (Sandbox Code Playgroud)

我在行var canvas =新Canvas()说'Canvas未定义'时得到错误HTML5不允许从构造函数创建元素吗?或者是否需要传递给构造函数的参数.任何想法都会很棒.

Sim*_*ris 88

虽然你可以做得new Image()很好,但new Canvas()不是一件事!Canvas甚至不是一件事HTMLCanvasElement.尽管如此,您无法使用其构造函数.

document.createElement('canvas');是你想要的.你必须使用它,就像使用div一样.


小智 58

var mycanvas = document.createElement("canvas");
mycanvas.id = "mycanvas";
document.body.appendChild(mycanvas);
Run Code Online (Sandbox Code Playgroud)

  • 要清楚,如果您只是使用它来生成图像(例如,渲染到另一个画布上),您不必将画布附加到DOM (6认同)
  • 这是更完整的答案! (5认同)
  • 如果你自己创建了元素,为什么要设置id?对于CSS?并且,在许多情况下,您想要创建画布,但无论如何都不要将其添加到DOM. (2认同)
  • 谢谢@ aboveyou00,这是一个非常有用的区别!我希望你的评论是选定的答案! (2认同)