基本用法

首先在body中写个<canvas>,设定大小,个人建议大小要在行内设置,不然在部分情况下会发生错误。

CSS部分

给canvas加个边框,这边框只是为了方便看出canvas的边界,加不加都可以。

<style type="text/css">
canvas{
border:1px solid #000;
}
</style>

HTML部分

<canvas id="canvas" width="500" height="500"></canvas>

JSt部分

canvas是一个画布,要操作它,需要使用javascript,所以我们要在javascript中获取它

var canvas = document.getElementById('canvas');

然后设置画画的环境,canvas是一个功能很强大的标签,这里我先简述下2d环境下的

var context = canvas.getContext('2d');

上述设置都做好后,就可以在画布上画东西了,例:

画一条线

context.lineWidth = 4;//设置画笔粗细
context.strokeStyle = 'red';//设置画笔颜色 context.beginPath();//开始路径
context.moveTo(100,100);//落笔点(100,100)
context.lineTo(100,200);//移动到(100,200)点上
context.closePath()//结束路径
context.stroke();//上色

结果如图:

closePath()方法有闭合路径的功能,也就是说不管最后一个点在哪,它都会自动生成一条线条将第一个点与最后一个点连接起来,上述例子由于是线条,看出不来,这个功能画几何图形的时候能给你带来些许便利,例:

context.beginPath();//开始路径
context.moveTo(100,100);
context.lineTo(100,200);
context.lineTo(200,200);
context.closePath()//结束路径
context.stroke();

效果如图:

<canvas> 2d环境量的绘制图形属性

属性 简介
canvas 指向绘图环境所属的canvas对象
fillstyle 指定该绘图环境在后续的图形填充操作中所使用的颜色,渐变色或方案
font 设定在调用绘图环境对象的fillText()或strokeText()方法时,所使用的字型
globalAlpha 指定全局透明度,取值范围0~1
globalCompsiteOperation 将某个物体绘制在其他的物体之上时采用的绘制方式,取值范围source-atop, source-in, source-out, source-over, destination-top, destination-in, destination-out, destination-over, lighter, copy, xor
lineCap 该值告诉浏览器如何绘制线段的端点,取值范围butt, round, square
lineWidth 线条的宽度
lineJoin 线条绘制交叉的时候的绘制方式,bevel, round, miter
miterLimit 如何绘制miter形式的线段焦点
shadowBlur 延伸的阴影效果,取值为非负的无穷量的double值,该值为高斯模糊方程式中的参数值
shadowColor 阴影的颜色值
shadowOffsetX 阴影效果的水平方向偏移量
shadowOffsetY 阴影效果的垂直方向偏移量
strokeStyle 对路径描边时所使用的绘制风格
textAlign fillText()或strokeText()方法绘制的时候,所画文本的水平对齐方式
textBaseline fillText()或strokeText()方法绘制的时候,所画文本的水平对齐方式

HTML5新标签<canvas>的更多相关文章

  1. HTML5新标签 w3c

    w3c标准下的HTML5新标签 ,做个归纳总结: H5标签 定义和用法 兼容性 <artical> 规定独立的自包含内容, 支持html中的全局属性, 支持html中的事件属性 IE: 支 ...

  2. 让ie浏览器支持html5新标签的解决方法(使用html5shiv)

    没估计错的话旧版浏览器都是不识别这些新增的标签所以都是用行内元素来处理解决的,所以,有一个解决办法的突破口就是让它变成块状元素就不会处于同一行了,这样在新旧浏览器都是可以显示同样的效果,再者就是让浏览 ...

  3. html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?

    * HTML5 现在已经不是 SGML(标准通用标记语言,是一种定义电子文档结构和描述其内容的国际标准语言) 的子集,主要是关于图像,位置,存储,多任务等功能的增加.   * 拖拽释放(Drag an ...

  4. Html5新标签解释及用法

    Html5新标签解释及用法 HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1.0 and DOM Level 2 HTML 标准.它希望能够减少浏览器对于需要 ...

  5. Html5新标签及用法

    HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1.0 and DOM Level 2  HTML 标准.它希望能够减少浏览器对于需要插件的丰富性网络应用服务( ...

  6. 支持HTML5新标签

    IE8/IE7/IE6支持通过document.createElement方法产生的标签,               可以利用这一特性让这些浏览器支持HTML5新标签,               ...

  7. 让IE6,7,8支持HTML5新标签的方法

    很多网站对网页进行重构的时候,提高标签的语义性,在网页中大量使用了section,article,header等HTML5新标签.考虑到目前win7自带的IE浏览器版本是IE8,而IE8不支持HTML ...

  8. 如何处理HTML5新标签的兼容性问题

    支持HTML5新标签: * IE8/IE7/IE6支持通过document.createElement方法产生的标签, 可以利用这一特性让这些浏览器支持HTML5新标签, 浏览器支持新标签后,还需要添 ...

  9. html5\CSS3有哪些新特性、移除了哪些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分HTML和HTML5?

    (1)HTML5现在已经不是SGML的子集,主要是关于图像,位置,存储,地理定位等功能的增加. 绘画canvas元素: 用于媒介回放的video和audio元素: 本地离线存储localStorage ...

  10. HTML5新标签的兼容性处理

    普通浏览器 普通不支持HTML5新标签的浏览器 -- 能正常解析,但会当初成 inline 元素对待 在不支持HTML5新标签的浏览器里,会将这些新的标签解析成行内元素(inline)对待,所以我们只 ...

随机推荐

  1. DOS批处理命令

    1.echo的用法(echo /? --查看帮助) echo off/on  打开关闭回显功能(@echo off 关闭回显并且不需要回显 echo 命令) echo,   显示空行(也可以是; . ...

  2. Visual Studio Emulator for Android 的安装与使用 感觉最干净好看的模拟器.

    Step1 win8+ 6G+ 添加删除程序\ hyper  创建虚拟机 安装visual studio android 模拟器, 自带三个模拟器 使用管理员打开模拟器 参考文献 Visual Stu ...

  3. jquery样式篇

    1.jquery: 1.1简介 jquery是一个轻量级的javascript库.版本号分1.x版本和2.x版本,2.x版本不再支持IE6 7 8,而更好的支 持移动端开发. 每一个版本分为开发版和压 ...

  4. node08-express

    目录:node01-创建服务器 node02-util node03-events node04-buffer node05-fs node06-path node07-http node08-exp ...

  5. Bill的挑战(bzoj 1879)

    Description Input 本题包含多组数据. 第一行:一个整数T,表示数据的个数. 对于每组数据: 第一行:两个整数,N和K(含义如题目表述). 接下来N行:每行一个字符串. Output ...

  6. MFC 创建多层目录

    创建多层目录 BOOL CTestToolCtr::CreateFolder(CString strNewFolder) { /************************************ ...

  7. python之路:Day02 --- Python基础2

    本节内容 1.列表操作 2.元组操作 3.字符串操作 4.字典操作 5.集合操作 6.文件操作 7.字符编码与转换 一.列表操作 定义列表 names = ['Ming',"Hua" ...

  8. JS模块化

    一.原始写法 /* 模块就是实现特定功能的一组方法. 只要把不同的函数(以及记录状态的变量)简单地放在一起,就算是一个模块. 上面的函数m1()和m2(),组成一个模块.使用的时候,直接调用就行了. ...

  9. Blender 脚本之 Operator 初探

    addon(插件)用来扩展 Blender 的功能,跟其他软件里的 plugin(插件)一样,去掉不会影响软件的运行.插件可以加到 Blender 的用户偏好设置目录里,或者就在你所编辑的.blend ...

  10. c#3.0新特性

    1.自动属性 public int ID { get; set; } // 上面的ID属性(自动属性)等同于下面的ID属性 // private int _id; // public int ID / ...