Javascript 我试着用帆布做这个。你能做到吗? 我尝试用以下代码在画布中绘制一个div

Javascript 我试着用帆布做这个。你能做到吗? 我尝试用以下代码在画布中绘制一个div,javascript,html,canvas,Javascript,Html,Canvas,当我尝试初始化时,它工作 divMensaje=new DivCanvas(); divMensaje.setWidth(micanvas.width); divMensaje.setHeight(micanvas.height/4); //112 divMensaje.setX(0); divMensaje.setY(micanvas.height-(micanvas.height/4)); //336 divMe

当我尝试初始化时,它工作

divMensaje=new DivCanvas();
        divMensaje.setWidth(micanvas.width);
        divMensaje.setHeight(micanvas.height/4); //112
        divMensaje.setX(0);
        divMensaje.setY(micanvas.height-(micanvas.height/4)); //336
        divMensaje.getDiv().id="mensaje";
但当我尝试画画时,却不起作用。我的代码在尝试执行时停止

divMensaje.dibujar();

正如您在MDN的文档中所看到的:

CanvasRenderingContext2D.drawImage()
图像
要绘制到上下文中的元素。该规范允许任何画布图像源(CanvasImageSource),如HTMLImageElement、HTMLVideoElement、HTMLCanvasElement或ImageBitmap

关注这一点:

HTMLImageElement、HTMLVideoElement、HTMLCanvasElement或ImageBitmap


这些都是CanvasImageSource的变量,而
div
不是。(MDN:)

您可以在MDN的文档中看到:

CanvasRenderingContext2D.drawImage()
图像
要绘制到上下文中的元素。该规范允许任何画布图像源(CanvasImageSource),如HTMLImageElement、HTMLVideoElement、HTMLCanvasElement或ImageBitmap

关注这一点:

HTMLImageElement、HTMLVideoElement、HTMLCanvasElement或ImageBitmap


这些都是CanvasImageSource的变量,而
div
不是。(MDN:)

您不能将
div
绘制到画布中,只能绘制已经是视觉效果的元素,如
img
video
和其他
画布
ses。谢谢。我尝试了一个视频和一个图像,效果很好。当div不工作时,我会想象。非常感谢。我在回答中又补充了一些细节。另外,为了将来,在
=
符号周围留出一些空间是没有坏处的,这将使您的代码更易于阅读!您不能将
div
绘制到画布中,只能绘制已经是视觉效果的元素,如
img
video
和其他
canvas
ses。谢谢。我尝试了一个视频和一个图像,效果很好。当div不工作时,我会想象。非常感谢。我在回答中又补充了一些细节。另外,为了将来,在
=
符号周围留出一些空间是没有坏处的,这将使您的代码更易于阅读!
divMensaje.dibujar();
void ctx.drawImage(image, dx, dy);