Dynamically Resizing the Canvas
In the code we developed in this chapter, we created a reference to the Canvas object on the HTML page—with the
id canvasOne—and used it to retrieve
the 2D context of the Canvas
object:
vartheCanvas=document.getElementById("canvasOne");varcontext=theCanvas.getContext("2d");
While the 2D context is very important because we used it to draw
directly onto the canvas, we did not spend any time discussing the
Canvas object itself. In this
chapter, we use the width property of
the Canvas object to center text on
the canvas. However, the Canvas
object also includes another property named height, and both of these properties can be
used to dynamically resize the Canvas
object on demand. Why would you want to do this? There could be many
uses, including the following:
Updating the canvas to the exact size of a loaded
videoobjectDynamically animating the canvas after the page is loaded
Other, more creative uses like the one we will experiment with next
Resizing the canvas on the fly is quite easy. To do it, simply set
the width and height properties of the Canvas object, and then redraw the canvas
contents:
Canvas.width=600;Canvas.height=500;drawScreen();
The Canvas 2D API describes this function as a way to “scale” the canvas, but in practice, this does not appear to be true. Instead, the contents of the canvas are simply redrawn at the same size and same location on a larger canvas. Furthermore, if you don’t redraw the canvas content, it appears to ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access