html5 canvas 画布入门
文章目录
今天开始学点新东西,canvas 画布,它是一个 HTML5 的一个新元素, 它没有自己的行为,但是定义了一个 API 支持脚本化客户端绘图操作。
既然是入门,也来个 hello world 小程序吧。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>hello canvas</title> <style> body { background: #ddd; } #canvas { background: #fff; } </style> </head> <body> <canvas id="canvas" width="600" height="300"></canvas> <script> var canvas = document.getElementById('canvas'), context = canvas.getContext('2d'); context.font = '38pt Arial'; context.fillStyle = 'cornflowerblue'; context.strokeStyle = 'blue'; context.fillText('Hello Canvas', canvas.width / 2 - 150, canvas.height / 2 + 15); context.strokeText('Hello Canvas', canvas.width / 2 - 150, canvas.height / 2 + 15); </script> </body> </html> |
效果:
需要注意的是,在这里,我们是通过设置 canvas 元素的 width 与 height,来改变元素大小的。 假如通过 css 来设置 canvas 元素的大小,两者的效果并不一样。
1 2 3 4 5 6 |
#canvas { width: 600; height: 300; } <canvas id="canvas"></canvas> |
效果:
这是因为 canvas 元素有元素本身大小与元素绘图表面大小两套尺寸。 设置 width 和 height 时,实际上是同时修改了该元素本身大小和元素绘图表面大小; 而设置 css,只会改变元素本身大小,并不会改变元素绘图表面大小。 默认情况下元素本身大小与元素绘图表面大小都为 300 x 150。 当元素本身大小与元素绘图表面大小不一样大小时,浏览器会对绘图表面进行缩放。
文章作者 wenzhixin
上次更新 2013-11-12