H5引入了canvas标签,默认是一个300*150的inline-block。canvas的宽高只能用它自身的width和height属性来指定,而不能使用css样式中的width、height。

  一、获得‘画笔’对象,canvas所有的任务都需要它来执行

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

  二、一些canvas常用的属性

    fillStyle:填充样式

    strokeStyle:描边样式

    lineWidth:描边宽度

    font:绘制文本所用的字体大小和类型

    textBaseline:文本对其的基线

    shadowOffsetX、shadowOffsetY:阴影偏移量

  三、使用canvas绘制图形

    1、绘制矩形

    ctx.fillRect(x,y,w,h):填充一个矩形

    ctx.strokeRect(x,y,w,h):描边一个矩形

    ctx.clearRect(x,y,w,h):清除一个矩形范围内的内容

    2、绘制文本

    ctx.fillText(txt,x,y)填充文本

    ctx.strokeText(txt,x,y)描边文本

    ctx.measureText(txt)测量

    *要注意的是文本的定位点默认在文本基线(alphabetic)的起始点!

    3、为图形文字添加阴影

    例:ctx.shadowColor='#000';//颜色

      ctx.shadowOffsetX=8;//水平偏移量

      ctx.shadowOffsetY=8;//垂直偏移量

      ctx.shadowBlur=10;//模糊半径

    4、在绘图时使用渐变色

    ctx.createLinearGradient(x1,y1,x2,y2):创建线性渐变对象

    ctx.createRadialGradient(x1,y1,r1,x2,y2,r2):创建径向渐变对象

    ctx.addColorStop:添加颜色点

    5、绘制路径

    ctx.beginPath():开始路径

    ctx.closePath():结束路径

    ctx.moveTo(x,y):移动到指定点

    ctx.lineTo(x,y):绘制直线路径到指定点

    ctx.arc():绘制拱形路径

    ctx.ellipse():绘制椭圆路径

    ctx.bezierCurveTo():绘制贝塞尔曲线路径

    ctx.linJoin():修改折线拐点处样式

    6、绘制图像

    ctx.drawImage()

    7、对于绘制上下文状态的改变和修改

    ctx.translate(x,y):坐标轴原点移动到指定点

    ctx.rotate():旋转画笔

    ctx.scale():画笔缩放

    ctx.save():保存绘图上下文当前的变形数据

    ctx.restore():恢复最近一次的保存的变形相关的状态

 ***Canvas是个纯js实现的绘制位图的技术。

HTML5 十大新特性(四)——Canvas绘图的更多相关文章

  1. HTML5 十大新特性(五)——SVG绘图

    相对于canvas绘图,SVG是一种绘制矢量图的技术.全称叫做Scalable Vector Graphics,可缩放的矢量图,在2000年就已经存在,H5把它纳入了标准标签库,并进行了一些瘦身.需要 ...

  2. HTML5 十大新特性(二)——表单新特性

    H5的表单新特性可以分为两大类. 一.10个input的type值 1.email:邮件输入域,在表单提交时提供简单的邮箱格式验证,并弹出一个提示窗口. 2.url:地址输入域,在表单提交时提供简单的 ...

  3. HTML5 十大新特性(一)——语义标签

    说语义标签前先来理解下什么叫语义化,当下html是靠div+css来铸造页面的整体框架和结构的,通篇大量的div可读性极低,因此诞生了这些特殊的标签,简单地说就是见名知义,使页面更清晰,方便维护和开发 ...

  4. HTML5 十大新特性(十)——Web Socket

    webSocket是H5新加的一个协议,为了解决http协议的request.response一一对应和它自身的被动性,以及ajax轮询等问题.一方可以发送多条信息,连接不中断,永久连接,但也导致了服 ...

  5. HTML5 十大新特性(七)——拖放API

    拖放API是H5专门为了鼠标拖放而新提供了7个事件,可以分成三个部分来讲. 一.拖动的源对象(source)可以触发的事件 dragstart:拖动开始 drag:拖动进行中 dragend:拖动结束 ...

  6. HTML5 十大新特性(三)——视频和音频

    一.视频(video) H5新加了video标签,用来播放视频,默认为一个300*150的inline-block. 二.音频(audio) H5新加了audio标签,用来播放音频,默认为一个300* ...

  7. HTML5 十大新特性(九)——Web Storage

    H5的webStorage技术一共提供了两个对象:window.sessionStorage和window.localStorage. 一.window.sessionStorage--会话级存储 存 ...

  8. HTML5 十大新特性(八)——Web Worker

    由于js是单线程的,所以H5添加了这个叫做webWorker的概念,允许js创建多个线程,但是子线程完全受主线程控制,且不能操作DOM,从而来处理一些比较耗时的操作. 那么如何创建一个子线程呢?通过这 ...

  9. HTML5 十大新特性(六)——地理定位

    简单地用一句话概括就是,使用js获取浏览器当前所在的地理坐标,实现LBS(Location Based Service,基于定位的服务). 下面写一下它的基本调用: if(navigator.geol ...

随机推荐

  1. Djunit工作记录Mock时出现为null的情况setReturnValueAt|MockObjectManager.addReturnValue不起作用

    最近工作要对代码进行局部测试并编写测试文档,可是偶的环境还没搞好哦(开始不太乐意直接请教前辈,还是选择自己先搞一下了)经过电脑重装jdk ,eclipse,djunit工具包ver***,等等确定不是 ...

  2. 夺命雷公狗-----React---14--移入移出事件

    <!DOCTYPE> <html> <head> <meta charset="utf-8"> <title></ ...

  3. 有关css伪类visited样式无效的解决方法

    错误写法 将visited写在hover和active之后,例如: .ui-page-theme-a .digilinx-ui-btn{background:#00a325;border-color: ...

  4. iOS的数据持久化

    所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件(属性列表) pr ...

  5. 踢爆IT劣书出版黑幕——由清华大学出版社之《C语言入门很简单》想到的(1)

    1.前言与作者 首先声明,我是由于非常偶然的机会获得<C语言入门很简单>这本书的,绝对不是买的.买这种书实在丢不起那人. 去年这书刚出版时,在CU论坛举行试读推广,我当时随口说了几句(没说 ...

  6. python之三层菜单递归

    首先非常感谢11期的学长薜保库提供了一种非常实用函数递归方法,让实现三层菜单如此简单,不过对所遍历的嵌套字典或列表格式有所要求.有特定的环境下非常实用. 主要针对中国的各省市区进行展示,采用了百度的j ...

  7. windows下自动FTP的脚本

    之前发过一篇如何自动FTP的文章,不过当时的脚本都是在Unix下测试通过的.而如果在windows下实现自动FTP的功能,则需要通过如下方式:     1. 建立ftp123.bat文件 open I ...

  8. ElasticSearch学习记录

    中文api 什么是集群? 集群(cluster) >由一个或多个节点组织在一起. >由一个唯一的名字标识,默认为"elasticsearch". 节点(node) &g ...

  9. 主机和虚拟机不能ping通问题

    VMware的三种网络模式附上: 在vmw中,默认有3个虚拟交换机 分别是VMnet0(桥接).VMnet1(主机网络)以及VMnet8(NAT) 还可以根据需要添加VMnet2~VMnet7和VMn ...

  10. python:点赞功能

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...