html5 canvas
HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。
画布是一个矩形区域,您可以控制其每一像素。canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法Canvas 对象Canvas 对象表示一个 HTML 画布元素 - <canvas>。它没有自己的行为,但是定义了一个 API 支持脚本化客户端绘图操作。你可以直接在该对象上指定宽度和高度,但是,其大多数功能都可以通过 CanvasRenderingContext2D 对象获得。 这是通过 Canvas 对象的 getContext() 方法并且把直接量字符串 "2d" 作为唯一的参数传递给它而获得的。Canvas 对象的属性height 属性画布的高度。和一幅图像一样,这个属性可以指定为一个整数像素值或者是窗口高度的百分比。当这个值改变的时候,在该画布上已经完成的任何绘图都会擦除掉。默认值是 300。
width 属性画布的宽度。和一幅图像一样,这个属性可以指定为一个整数像素值或者是窗口宽度的百分比。当这个值改变的时候,在该画布上已经完成的任何绘图都会擦除掉。默认值是 300。
Canvas 对象的方法 方法 描述 getContext() 返回一个用于在画布上绘图的环境。 创建 Canvas 元素向 HTML5 页面添加 canvas 元素。规定元素的 id、宽度和高度:
<canvasid="myCanvas"width="200"height="100"></canvas>
通过 JavaScript 来绘制
canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成:
<scripttype="text/javascript">varc=document.getElementById("myCanvas");varccxt=c.getContext("2d");cxt.fillStyle="#FF0000";cxt.fillRect(0,0,150,75);</script>
JavaScript 使用 id 来寻找 canvas 元素:
varc=document.getElementById("myCanvas");
然后,创建 context 对象: var cxt=c.getContext("2d");
getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
下面的两行代码绘制一个红色的矩形: cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,150,75); fillStyle 方法将其染成红色,fillRect 方法规定了形状、位置和尺寸。
理解坐标上面的 fillRect 方法拥有参数 (0,0,150,75)。意思是:在画布上绘制 150x75 的矩形,从左上角开始 (0,0)。
如下图所示,画布的 X 和 Y 坐标用于在画布上对绘画进行定位。
包括前几篇DEMO都涉及了大量的坐标,那这些坐标是如何准备得到的呢,我们实际开发如何得到我们想要的坐标点?下面给出一个获取canvas坐标点的DEMO:
<!DOCTYPEHTML><html><head><styletype="text/css">body{font-size:70%;font-family:verdana,helvetica,arial,sans-serif;}</style><scripttype="text/javascript">functioncnvs_getCoordinates(e){x=e.clientX;y=e.clientY;document.getElementById("xycoordinates").innerHTML="Coordinates:("+x+","+y+")";}functioncnvs_clearCoordinates(){document.getElementById("xycoordinates").innerHTML="";}</script></head><bodystyle="margin:0px;"><p>把鼠标悬停在下面的矩形上可以看到坐标:</p><divid="coordiv"style="float:left;width:199px;height:99px;border:1pxsolid#c3c3c3"onmousemove="cnvs_getCoordinates(event)"onmouseout="cnvs_clearCoordinates()"></div><br/><br/><br/><divid="xycoordinates"></div></body></html>
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。