本文摘自PHP中文网,作者黄舟,侵删。
HTML5中canvas元素用于在网页上绘制图形。Canvas的特点
Canvas标签的使用
下面的代码是使用canvas画面绘制一个200*200红色矩形:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <!Doctype html>
< html >
< head >
< title >我的canvas页面</ title >
< meta charset = "utf-8" />
</ head >
< body >
< canvas id = "myCanvas" width = "200" height = "200" >
</ canvas >
< script type = "text/javascript" >
var c=document.getElementById("myCanvas"); var cxt=c.getContext("2d");
cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,200,200);
</ script >
</ body >
</ html >
|
将上面的代码保存为canvas.html,并将其编码设置为utf-8(否则中文乱码),使用浏览器打开就可以看到如下效果:

1 | < canvas id = "myCanvas" width = "200" height = "200" >
|
这里创建Canvas标签,并定义其id为myCanvas,便于JavaScript绘图时获取该标签对象。
再看JavaScript绘图部分:
1 2 3 4 | var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,200,200);
|
第一句getElementById,通过Canvas标签的ID获取canvas对象。
第二句getContext,获取context对象。
第三句调用Context对象的方法fillStyle,即填充其颜色。
第四句调用Context对象的fillRect方法指定填充的区域。
Canvas的其他实例
直线
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!Doctype html>< html >< head >< title >我的canvas页面</ title >
< meta charset = "utf-8" />
</ head >
< body >
< canvas id = "myCanvas" width = "200" height = "200" >
</ canvas >
< script type = "text/javascript" >
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.moveTo(10,10);
cxt.lineTo(150,50);
cxt.lineTo(10,50);
cxt.stroke();</ script ></ body ></ html >
|
运行结果如下:

圆
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <!Doctype html>
< html >
< head >
< title >我的canvas页面</ title >
< meta charset = "utf-8" />
</ head >
< body >
< canvas id = "myCanvas" width = "200" height = "200" >
</ canvas >
< script type = "text/javascript" >
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.fillStyle="#FF0000";
cxt.beginPath();
cxt.arc(70,18,15,0,Math.PI*2,true);
cxt.closePath();
cxt.fill();</ script ></ body ></ html >
|
运行结果如下:

渐变
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <!Doctype html>< html >< head >< title >我的canvas页面</ title >
< meta charset = "utf-8" />
</ head >
< body >
< canvas id = "myCanvas" width = "200" height = "200" >
</ canvas >
< script type = "text/javascript" >
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
var grd=cxt.createLinearGradient(0,0,175,50);
grd.addColorStop(0,"#FF0000");
grd.addColorStop(1,"#00FF00");
cxt.fillStyle=grd;
cxt.fillRect(0,0,175,50);
</ script >
</ body >
</ html >
|
效果如下:

图像
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <!Doctype html>
< html >
< head >
< title >我的canvas页面</ title >
< meta charset = "utf-8" />
</ head >
< body >
< canvas id = "myCanvas" width = "800" height = "600" >
</ canvas >
< script type = "text/javascript" >
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
var img=new Image();
img.src="1.png";
img.onload=function(e){
cxt.drawImage(img,0,0);
}
cxt.drawImage(img,0,0);
</ script >
</ body >
</ html >
|
注意,一定要给Img添加onload事件,否则图片不显示。
其中,1.png为自己找的图片素材。打开页面可以看到图片显示在canvas画布中了。我的运行效果如下,图片百度随便找的,凑合看~~

以上就是HTML5 canvas画布详解(一)的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
HTML5 websql四种基本操作的介绍
canvas跨域的解决方案介绍
20个非常绚丽的HTML5/css3应用插件的详细介绍(图)
HTML5的集合
HTML5优势到底有哪些?
HTML5通过api实现拖放排序的实例教程
分享h5调用摄像头实现拍照的实例教程
介绍几款引人注目的HTML5/jquery动画插件详情
h5的头部meta标签如何使用
h5中的弹窗无法用webview弹出怎么解决
更多相关阅读请进入《HTML5》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » HTML5 canvas画布详解(一)