2012-02-12 16 views
29

he el siguiente código HTML en:Establecer tamaño de lienzo usando javascript

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

quiero, en lugar de especificar el width como 800, para llamar a la función de JavaScript getWidth() para obtener el ancho, por ejemplo,

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

¿Cuál es la sintaxis correcta para hacerlo? Porque lo que estoy haciendo no funciona.

+0

Tal vez esto ayuda: http://stackoverflow.com/questions/331052/how-to-resize-html-canvas-element – Alex

+0

se puede relacionar con este post para un "ajuste a la pantalla" http://stackoverflow.com/questions/1664785/html5-canas-resize-to-fit-window –

+0

Quizás quiso decir ' 'y' '. ¿Eso es un error tipográfico o un error en el código? –

Respuesta

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

Quiero establecer el ancho del lienzo no solo obtener el ancho –

+0

ver la respuesta actualizada – bozdoz

+1

@KyriacosKafas Debe elegir una respuesta aceptada. :) – bozdoz

40

Puede establecer el ancho de la siguiente manera:

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

La función de dibujo no es el mejor lugar para este código. Use onresize sin problemas. –

+0

ya esto funcionó para mí – user889030

-3

También puede utilizar este script, basta con cambiar la altura y el ancho

<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

¿qué ...? qué...? qué...? –

0

Prueba esto:

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 ('')

funciona para iframe y well.

+0

document.write ('') –

4

Prueba esto:

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