HTML5中Canvas标签的学习

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

1、canvas标签说明

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

<canvas id="myCanvas" width=”300” height=”200” style="border:1px solid #c3c3c3;">
Your browser does not support the canvas element.
</canvas>
 

解析:

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

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

2、检测浏览器支持

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

<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之前,想要在网页上面绘制线条或图案,是非常麻烦且不兼容的。现在有了canvas标签,一切就变得简单了。现在,你只需要在页面上添加canvas标签,并通过Javascript调用它的相应方法,就可以轻松的在页面上绘制线条和图案。

//绘制线条<BR><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方法则是将直线显示出来。貌似是之前只是规定了哪里有线条,并没有显示,当调用这个方法后,线条才可以显示。

//绘制图案<BR><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()方法结束路径的绘制。下面的例子讲演时如何绘制路径:

<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()方法结束路径的绘制

时间: 2024-09-15 17:47:16

HTML5中Canvas标签的学习的相关文章

HTML5之Canvas标签简要学习

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

html5中source标签的学习

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

html5-关于HTML5中video标签的问题

问题描述 关于HTML5中video标签的问题 在HTML5里边用了video标签,在本地测试时挺好的,但是部署到tomcat上再运行的话视频就无法播放了,这是问什么啊?下面是代码 <!DOCTYPE HTML> 首页 解决方案 是不是路径的问题.. 解决方案二: html5中video标签html5标签videoHTML5新特性(1) 标签

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中Canvas的宽、高设置有关问题

关于HTML5中Canvas的宽.高设置问题 Canvas元素默认宽 300px, 高 150px, 设置其宽高可以使用如下方法:方法一:1 <canvas width="500" height="500"></canvas>方法二:使用HTML5 Canvas API操作 OK1 var canvas = document.getElementById('欲操作canvas的id');2 canvas.width = 500;3 canva

html5中canvas的一个简单的例子

买了两本关于HTML5的书,一本<HTML5揭秘>,一本<HTML5高级程序设计>,现在在看<html5揭秘>网上说这本书是非常入门的一本,<HTML5权威指南>就相对深一点.所以买了揭秘,没买指南.都说HTML5的canvas很重要,所以这里把书上关于canvas的一些简单例子,给试着自己写了一遍,放上来把  代码如下 复制代码 window.onload = function(){     var canvas = document.getElement

HTML5中的标签属性简介

HTML 5 通过制定如何处理所有 HTML 元素以及如何从错误中恢复的精确规则,HTML 5 改进了互操作性,并减少了开发成本. HTML 5 中的新特性包括了嵌入音频.视频和图形的功能,客户端数据存储,以及交互式文档. HTML 5 还包含了新的元素,比如:<nav>, <header>, <footer> 以及 <figure> 等等. HTML 5 工作组包括:AOL, Apple, Google, IBM, Microsoft, Mozilla,

HTML5中Canvas(绘制)使用例子

Canvas中不仅可以画线(路径),还能画很多其他的图像,这一章就介绍Canvas的其他两种绘图API. 一.简单图形,整套的属性和方法专门用于绘制矩形: 1.fillStyle可以设置为CSS颜色.一个图案或一种颜色渐变.fillStyle默认是纯黑色,你可以设置成你喜欢的任意颜色.只要页面打开着,每个绘图上下文都会记录自己的属性,除非你重置过它. 2.fillRect(x,y,width,height)绘制一个矩形,并以当前的fillStyle来填充. 3.srtokeStyle和fillS

html5中article标签的讲解

<article> 标签是用来定义一些来自外部的内容.比如一些网友的投稿或是新闻记者的文章或是摘取某博客.论坛的信息,以及其他媒介资料. 用户看到的内容并不是对应本网站的一个具体的页面,<article>是可以嵌套使用的,内外层内容相关联 示例代码: <html><body><article><h5>HTML5 项目</h5><p>HTML5是用于修正现在html的下一个网页规范</p><p&