HTML5之Canvas标签简要学习

HTML5 提供了画布(canvas)标签,通过与Javascript结合使用,可以在网页上绘制图像。Canvas是一个矩形区域,使用Javascript可以控制其每一个像素。本文将对canvas标签进行简要的学习。

1、canvas标签说明

    canvas标签是一个矩形区域,它包含两个属性width和height,分别表示矩形区域的宽和高,这两个属性都是可选的,并且都可以通过css来设定,他们的默认值是300px和150px。canvas在网页中的形式如下:


1

2

3

<canvas id="myCanvas" width=”300” height=”200” style="border:1px solid #c3c3c3;">

Your browser does not support the canvas element.

</canvas>


1

 解析:


1

为canvas设置id属性是便于Javascript调用;


1

第二行是当浏览器不支持canvas标签时,将显示这行文字。

 

2、检测浏览器支持

Canvas标签并没有得到目前所有浏览器的支持,因此在使用canvas绘图的时候,要先检测客户端浏览器是否支持。下面的示例将通过Javascript判断浏览器是否支持:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<canvas id="myCanvas" width=”300” height=”200” style="border:1px solid #c3c3c3;">

Your browser does not support the canvas element.

</canvas>

 

<script type="text/javascript">

    var myCanvas = document.getElementById("myCanvas");

    if (!myCanvas.getContext)

    {

        alert("Your browser does not support the canvas element.");

    }

    else

    {

        // do something here

    }

</script>

解析:

上面的Javascript代码通过判断getContext方法是否为空来判断浏览器是否支持canvas标签。

 

3、绘制线条和图案

    在没有canvas之前,想要在网页上面绘制线条或图案,是非常麻烦且不兼容的。我曾在《js画直线》一文中转载了网络上常用的在IE和FF中绘制线条的方法,但如果想要这些方法通用,则是不可能的。但现在有了canvas标签,一切就变得简单了。

    现在,你只需要在页面上添加canvas标签,并通过Javascript调用它的相应方法,就可以轻松的在页面上绘制线条和图案。

//绘制线条


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<canvas id="myCanvas"  style="border:1px solid #c3c3c3;">

Your browser does not support the canvas element.

</canvas>

 

<script type="text/javascript">

    var myCanvas = document.getElementById("myCanvas");

    if (!myCanvas.getContext)

    {

        alert("Your browser does not support the canvas element.");

    }

    else

    {

        var myContext = myCanvas.getContext("2d");

        myContext.moveTo(200, 150);

        myContext.lineTo(100, 100);

        myContext.lineTo(200, 50);

        myContext.strokeStyle = "#FF0000";

        myContext.lineWidth = 4;

        myContext.stroke();

 

    }  

</script>

解析:

显示在页面中放置了一个canvas标签,设定id、width、height等属性,并为这个标签设定边框。

在Javascript中检测浏览器是否支持

当浏览器支持的时候开始调用getContext方法获得绘图的上下文(这地方很像vc中的GDI绘图~~),目前只提供了2D上下文,将来还有可能支持OpenGL ES的3D上下文。

moveTo方法是将当前位置移动到指定的坐标

lineTo方法是向指定的左边绘制直线

strokeStyle 属性是指定线条的颜色,在本例子中指定为红色

lineWidth 属性设置线条的粗细,这里设置为4px

stroke方法则是将直线显示出来。貌似是之前只是规定了哪里有线条,并没有显示,当调用这个方法后,线条才可以显示。

 

// 绘制图案

 


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

<canvas id="myCanvas" width="300" height="200"  style="border:1px solid #c3c3c3;">

Your browser does not support the canvas element.

</canvas>

 

<script type="text/javascript">

    var myCanvas = document.getElementById("myCanvas");

    if (!myCanvas.getContext)

    {

        alert("Your browser does not support the canvas element.");

    }

    else

    {

        var myContext = myCanvas.getContext("2d");

 

        myContext.fillStyle = "rgb(200,0,0)";

        myContext.fillRect(10, 10, 55, 50);

 

        myContext.fillStyle = "rgba(0, 0, 200, 0.5)";

        myContext.fillRect(30, 30, 55, 50);

 

        myContext.fillRect(100, 0, 150, 50);

        myContext.strokeRect(100, 60, 150, 50);

        myContext.clearRect(130, 10, 90, 30);

    }

</script>

解析:

直接到fillStyle属性,之前的代码是相同的,不再赘言。

fillStyle属性设定了填充的颜色、透明度等,如果设置为"rgb(200,0,0)",则表示一个颜色,不透明;如果设置为"rgba(0,0,200,0.5)",则表示颜色为rgb(0,0,200),透明度为50%,

fillRect方法是绘制一个矩形,这个矩形区域没有边框,只有填充色。这个方法有四个参数,前两个表示左上角的坐标位置,第三个参数为长度,第四个参数为高度。

strokeRect方法绘制一个带边框的矩形。该方法的四个参数的解释同上。

clearRect方法是清除一个矩形区域,被清除的区域将没有任何线条。该方法的四个参数的解释同上。

 

4、绘制路径

    路径是绘制自定义图形的好方法,在canvas中通过beginPath()方法开始绘制路径,这个时侯你就可以绘制直线、曲线等,绘制完成后调用fill()和stroke()完成填充和设置边框,通过closePath()方法结束路径的绘制。下面的例子讲演时如何绘制路径:


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

30

31

32

<canvas id="myCanvas" width="300" height="200"  style="border:1px solid #c3c3c3;">

Your browser does not support the canvas element.

</canvas>

 

<script type="text/javascript">

    var myCanvas = document.getElementById("myCanvas");

    if (!myCanvas.getContext)

    {

        alert("Your browser does not support the canvas element.");

    }

    else

    {

        var myContext = myCanvas.getContext("2d");

         

        myContext.fillStyle = '#0000ff';

        myContext.strokeStyle = '#ff0000';

        myContext.lineWidth = 2;

         

        myContext.beginPath();

         

        myContext.moveTo(30, 30);

        myContext.lineTo(150, 30);

        myContext.lineTo(150, 120);

        myContext.lineTo(90, 100);

        myContext.lineTo(120, 60);

        myContext.lineTo(30, 30);

         

        myContext.fill();

        myContext.stroke();

         

        myContext.closePath();

    }

解析:

在获得渲染上下文后,设置了填充色、边框色和边框宽度。

调用beginPath()方法开始绘制路径

通过lineTo()方法绘制一个闭合的自定义图形

调用fill()方法进行填充

调用stroke()方法设置边框

调用closePath()方法结束路径的绘制

如果认为此文对您有帮助,别忘了支持一下哦!

作者:齐飞

来源:http://youring2.cnblogs.com/

声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。

转载:http://www.cnblogs.com/youring2/archive/2010/10/16/1853260.html

时间: 2024-09-17 04:25:24

HTML5之Canvas标签简要学习的相关文章

HTML5中Canvas标签的学习

HTML5 提供了画布(canvas)标签,通过与Javascript结合使用,可以在网页上绘制图像.Canvas是一个矩形区域,使用Javascript可以控制其每一个像素.本文将对canvas标签进行简要的学习. 1.canvas标签说明 canvas标签是一个矩形区域,它包含两个属性width和height,分别表示矩形区域的宽和高,这两个属性都是可选的,并且都可以通过css来设定,他们的默认值是300px和150px.canvas在网页中的形式如下: <canvas id="myC

JS基于HTML5的canvas标签实现炫目的色相球动画效果实例_javascript技巧

本文实例讲述了JS基于HTML5的canvas标签实现色相球效果.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>JS canvas标签制作色相球</title> </head> <body> <canvas></canvas&g

html5中source标签的学习

source标签在html5中的作用是定义媒介源,比如<video>和<audio>定义媒介资源.这最新的HTML5标签是用来允许你指定视频和音频的文件. 示例代码: <video controls> <source="video.WMV" type="video/WMV" /> <!-MP4 for Mozilla Firefox --> <source="video.ogg"

HTML5 canvas标签实现刮刮卡效果

             HTML5 canvas标签实现刮刮卡效果           你玩过刮刮卡么?一不小心可以中奖的那种.今天我给大家分享一个基于HTML5技术实现的刮刮卡效果,在PC上只需按住鼠标,在手机上你只需按住指头,轻轻刮去图层就可以模拟真实的刮奖效果. 源码下载:           我们利用HTML5的画布Canvas,结合其提供的API,在Canvas元素上绘制一个灰色蒙层,然后通过检测用户鼠标移到和手势来绘制一个透明的图形,这样就能看到Canvas背景下的真实图片,就达到

Html5 学习系列(二)HTML5新增结构标签

引言 在本节中,笔者将向大家讲述三部分内容,分别介绍HTML5时代的召唤,跟HTML4的区别,以及HTML5中带来的新的结构标签. HTML5时代的召唤 HTML4与HTML5的区别 HTML5新结构标签 HTML5时代的召唤 上一代的HTML的标准: HTML 4.01 和 XHTML 1.0 距离今天已经发布了10多年了,而Web端的应用也已经翻天覆地的变换.而且Web前端没有一个统一的通用的互联网标准,各个浏览器间拥有太多的不兼容,在维护这些浏览器兼容性浪费了太多的时间.再有就是之前的多媒

HTML5权威指南--Web Storage,本地数据库,本地缓存API,Web Sockets API,Geolocation API(简要学习笔记二)

1.Web Storage HTML5除了Canvas元素之外,还有一个非常重要的功能那就是客户端本地保存数据的Web Storage功能. 以前都是用cookies保存用户名等简单信息.   但是cookie有下面几个问题: a:大小:cookies的大小被限制在4KB b:带宽:cookies随HTTP事务一起被发送,因此会浪费一部分发送的cookies时使用的带宽. c:复杂性:要正确的操纵cookies是很困难的.   Web Storage分为两种: <1>sessionStorag

玩转html5&amp;lt;canvas&amp;gt;画图

玩转html5<canvas>画图 导航 前言 基本知识 绘制矩形 清除矩形区域 圆弧 路径 绘制线段 绘制贝塞尔曲线 线性渐变 径向渐变(发散) 图形变形(平移.旋转.缩放) 矩阵变换(图形变形的机制) 图形组合 给图形绘制阴影 绘制图像(图片平铺.裁剪.像素处理[不只图像.包括其他绘制图形]) 绘制文字 保存和恢复状态(context) 保存文件 结合setInterval制作动画 结语.demo下载   前言      <canvas></canvas>是html

如何使用HTML5的Canvas图形元素绘制图形

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 HTML5是目前HTML的最新标准.在笔者写这篇文章时,HTML5仍在积极的发展.HTML5除了提供新的标签信息外,同时还包含了新的应用程序编程接口(API),这样可以使我们能够在网页上提供更多丰富的多媒体和互动功能,而无需使用专有的插件.除了这些万维网联盟还公布了其他的相关技术,比如地理位置定位,脱机存储,档案管理等等. 在HTML5推出后

Html5 CSS3新标签解释及用法

HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1.0 and DOM Level 2 HTML 标准.它希望能够减少浏览器对于需要插件的丰富性网络应用服务(plug-in-based rich internet application,RIA),如Adobe Flash, Microsoft Silverlight, 与 Sun JavaFX 的需求. HTML 5 提供了一些新的元素和属性,反映典型的现代用法网站.其中有些是技术上类似 <div> 和