【发布时间】:2012-03-15 07:31:21
【问题描述】:
我一直在搞乱 HTML5 / Javascript,发现了一些我不明白的东西。
我试图编写一些基本例程来处理 HTML5 画布,但发现 drawImage 函数没有绘制任何东西。确定这是我的代码,我使用了现有教程中的代码,即HTML5 Canvas Image Tutorial。当我在外部包含 Javascript 代码时(即作为单独的文件),我仍然没有看到我的图像被绘制到画布上。
从那里,我复制了完整的源代码,逐字逐句地找到了 here,它确实有效。我开始胡思乱想,想弄清楚为什么这会奏效,但我的却没有。
我发现不同之处在于逐字代码定义了画布内联的宽度和高度。我更喜欢将样式从 HTML 和 CSS 中分离出来。如果我这样做,代码就可以工作:
<canvas id = "myCanvas" width = "600" height = "400"></canvas>
但如果我在外部 CSS 样式表中定义了画布宽度和高度,则不起作用。
我确实确定我的问题之一是我在 Javascript 文件之后包含了样式表;在此之前,我的图像根本没有出现,即使在通过 alert() 函数确认图像 onload 处理程序内的代码正在触发之后也是如此。更改包含文件的顺序后,我的图像确实出现了,但被奇怪地缩放,就好像 CSS 样式被忽略了一样。
这是为什么?我是否遗漏了有关通过 CSS 定义画布属性的顺序的内容?为什么在这种情况下 Javascript 会忽略 CSS 样式?如果它完全相关,我已经在 Chrome 和 Firefox 的最新版本中尝试过。
【问题讨论】:
标签: javascript html canvas