2012-02-12 69 views
29

我在HTML中下面的代码:设置画布大小的JavaScript

<canvas id="myCanvas" width =800 height=800> 

我想要的,而不是指定width800,调用JavaScript函数getWidth()到例如获得宽

<canvas id="myCanvas" width =getWidth() height=800> 

什么是正确的语法来做到这一点?因为我在做什么不行。

+0

也许这帮助: http://stackoverflow.com/questions/331052/how-to-resize-html-canvas-element – Alex 2012-02-12 18:40:06

+0

你可以涉及到这个职位一个“适合屏幕” http://stackoverflow.com/questions/1664785/html5-canvas-resize-to-fit-window – 2012-02-12 18:42:22

+0

您的意思是''和''。这是代码中的错字还是错误? – 2012-02-12 20:20:50

回答

21
function setWidth(width) { 
    var canvas = document.getElementById("myCanvas"); 
    canvas.width = width; 
} 
+0

我想设置画布的宽度而不仅仅是获得宽度 – 2012-02-12 18:43:04

+0

查看更新的答案 – bozdoz 2012-02-12 18:56:58

+1

@KyriacosKafas您应该选择一个接受的答案。 :) – bozdoz 2014-03-18 19:14:49

40

您可以设置宽度是这样的:

function draw() { 
    var ctx = (a canvas context); 
    ctx.canvas.width = window.innerWidth; 
    ctx.canvas.height = window.innerHeight; 
    //...drawing code... 
} 
+3

绘制函数不是此代码的最佳位置。使用onresize没有问题。 – 2016-02-18 14:22:03

+0

亚这工作对我 – user889030 2017-04-12 09:47:25

-3

您也可以使用这个脚本,只是改变高度和宽度

<canvas id="Canvas01" width="500" height="400" style="border:2px solid #FF9933; margin-left:10px; margin-top:10px;"></canvas> 

    <script> 
     var canvas = document.getElementById("Canvas01"); 
     var ctx = canvas.getContext("2d"); 
+2

什么...?什么...?什么...? – 2016-04-17 15:26:42

0

试试这个:

var w = window, 
d = document, 
e = d.documentElement, 
g = d.getElementsByTagName('body')[0], 
xS = w.innerWidth || e.clientWidth || g.clientWidth, 
yS = w.innerHeight|| e.clientHeight|| g.clientHeight; 
alert(xS + ' × ' + yS); 

document.write('')

适用于iframe和。

+0

document.write('') – 2015-07-30 15:48:37

4

试试这个:

var setCanvasSize = function() { 
canvas.width = window.innerWidth; 
canvas.height = window.innerHeight; 
}