2013-10-23 36 views
0

我试图绘制一个由500 x 1000像素构成的<canvas>元素,但我的浏览器只渲染300 x 150像素的元素。无法设置画布元素的大小?

这里是我的代码:

var c=document.getElementById('canvas'); 
var ctx=c.getContext('2d'); 
ctx.fillStyle='black'; 
ctx.fillRect(0,0,500,1000); 

的jsfiddle这里:http://jsfiddle.net/R8cxH/

我不明白这一点,因为外body元素比300个像素宽。

我在做什么错?

+0

Something lik电子邮件:http://jsfiddle.net/R8cxH/1/ – Passerby

回答

2

你需要设置你的新的宽度和高度创建的画布

c.width = 500; 
c.height = 1000; 
+0

这很有效,谢谢!将在一分钟内接受。 – Richard

+0

似乎不适用于我:http://jsfiddle.net/R8cxH/2/ – Pavlo

+1

@Pavlo您必须在使用元素之前设置大小*:http://jsfiddle.net/R8cxH/4/ – K3N

4

使用HTML属性:

<canvas id="canvas" width="500" height="1000"></canvas> 

如果您需要动态设置这些属性,getContext()之前分配widthheight属性:

var c = document.getElementById('canvas'); 
c.width = 500; 
c.height = 1000; 
var ctx = c.getContext('2d'); 
+0

谢谢,但如果我需要在JavaScript中动态设置宽度和高度,该怎么办? – Richard

+0

您在最后一个示例中显示css大小 - 需要直接在元素上设置大小:c.width = 500,c.height = 1000 – K3N

+0

@ Ken-AbdiasSoftware能否解释这种差异? – Pavlo