Canvas info: Canvas
1
| $ <canvas id="tutorial" width="150" height="150"></canvas>
|
我们可以提供对canvas内容的文字描述或者是提供动态生成内容相对应的静态图片,如下所示:
1 2 3 4 5 6 7
| <canvas id="stockGraph" width="150" height="150"> current stock price: $3.15 +0.15 </canvas>
<canvas id="clock" width="150" height="150"> <img src="images/clock.png" width="150" height="150" alt=""/> </canvas>
|
渲染上下文
canvas起初是空白的。为了展示,首先脚本需要找到渲染上下文,然后在它的上面绘制。
1 2
| var canvas = document.getElementById('tutorial'); var ctx = canvas.getContext('2d');
|
代码的第一行通过使用 document.getElementById() 方法来为
检查支持性
1 2 3 4 5 6 7 8
| var canvas = document.getElementById('tutorial');
if (canvas.getContext){ var ctx = canvas.getContext('2d'); // drawing code here } else { // canvas-unsupported code here }
|
一个模板骨架
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <html> <head> <title>Canvas tutorial</title> <script type="text/javascript"> function draw(){ var canvas = document.getElementById('tutorial'); if (canvas.getContext){ var ctx = canvas.getContext('2d'); } } </script> <style type="text/css"> canvas { border: 1px solid black; } </style> </head> <body onload="draw();"> <canvas id="tutorial" width="150" height="150"></canvas> </body> </html>
|
上面的脚本中包含一个叫做draw()的函数,当页面加载结束的时候就会执行这个函数。通过使用在文档上加载事件来完成。只要页面加载结束,这个函数,或者像是这个的,同样可以使用 window.setTimeout(), window.setInterval(),或者其他任何事件处理程序来调用。
一个简单的例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <html> <head> <script type="application/javascript"> function draw() { var canvas = document.getElementById("canvas"); if (canvas.getContext) { var ctx = canvas.getContext("2d");
ctx.fillStyle = "rgb(200,0,0)"; ctx.fillRect (10, 10, 55, 50);
ctx.fillStyle = "rgba(0, 0, 200, 0.5)"; ctx.fillRect (30, 30, 55, 50); } } </script> </head> <body onload="draw();"> <canvas id="canvas" width="150" height="150"></canvas> </body> </html>
|