Canvas通过JavaScript来绘制2D图形。Canvas是逐像素渲染的。在Canvas中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何已被图形覆盖的对象。

1、Canvas标签

html5中<canvas>元素用于图形的绘制,通过脚本(通常是JavaScript)来完成

<canvas>标签只是图形容器

可以通过多种方法使用Canvas绘制路径、盒、圆、字符以及添加图像

1.1 直接在html5中创建,这种方式采用得比较少

 <DOCTYPE html>
 <html>
 <head>
     <meta charset="utf-8">
     <title></title>
     <style>
         .canvas{
             background-color: aqua;
         }
     </style>
 </head>
 <body>
     <canvas class="canvas" id="canvas1" width="200px" height="200px"></canvas>
 </body>
 </html>

1.2 通过脚本创建

html文件:

 <DOCTYPE html>
 <html>
 <head>
     <meta charset="utf-8">
     <title></title>
 </head>
     <script src="app.js"></script>
 <body>
 </body>
 </html>

其中使用到的app.js:

 var CANVAS_WIDTH = 200, CANVAS_HEIGHT=200;

 window.onload = function(){
     createCanvas();
 }

 function createCanvas(){
     document.body.innerHTML = "<canvas id=\"mycanvas\" width = \""+CANVAS_WIDTH+"\"  height = \""+CANVAS_HEIGHT+"\"></canvas>"
 }

2、绘制图形

API的地址:https://developer.mozilla.org/zh-CN/   进入后选择WEB平台的Web API & DOM

 <DOCTYPE html>
 <html>
 <head>
     <meta charset="utf-8">
     <title></title>
 </head>
     <script src="app.js"></script>
 <body>
 </body>
 </html>

其中的app.js:

 var CANVAS_WIDTH = 500, CANVAS_HEIGHT=500;
 var mycanvas,context;

 window.onload = function(){
     createCanvas();
     drawRect();
 }

 function createCanvas(){
     document.body.innerHTML = "<canvas id=\"mycanvas\" width = \""+CANVAS_WIDTH+"\"  height = \""+CANVAS_HEIGHT+"\"></canvas>"
     mycanvas = document.getElementById("mycanvas");
     context = mycanvas.getContext("2d");
 }

 function drawRect(){
     context.fillStyle="#ff0000";
     context.translate(200,200);
     context.rotate(45);
     context.scale(2,0.5);
     context.fillRect(0,0,200,200);
 }

3、绘制图片

将app.js中drawRect()的内容替换成以下即可:

     var img = new Image();
     img.onload = function(){
         context.drawImage(img,0,0);
     }
     img.src="1.jpg";

[html5] 学习笔记-Canvas标签的使用的更多相关文章

  1. [html5] 学习笔记-Canvas应用

    通过使用HTML5游戏开发的引擎CreatJS,创建HTML5 Canvas上的更好交互. 1.认识CreateJS CreateJS是一个外部库,用它可以比Canvas更方便的绘制图形. 官网:ht ...

  2. [html5] 学习笔记-Canvas 绘制渐变图形与绘制变形图形

    在 HTML5 中,使用 Canvas API 绘制图形的知识,可以对绘制图形进行处理,包含使用 Canvas API 绘制渐变图形,使用 Canvas API 的坐标轴变换处理功能绘制变形图形.其中 ...

  3. Html5学习笔记1 元素 标签 属性

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. HTML5学习笔记之表格标签

    HTML5学习笔记之表格标签 其他HTML5相关文章 HTML5学习笔记之HTML5基本介绍 HTML5学习笔记之基础标签 HTML5学习笔记之表格标签 HTML5学习笔记之表单标签 HTML5学习笔 ...

  5. html5学习笔记一

    HTML5学习笔记 <video>标记:定义视频,Ogg.MPEG4.WebM三种格式 <video src=”movie.ogg”  controls=”controls”> ...

  6. HTML5学习总结——canvas绘制象棋(canvas绘图)

    一.HTML5学习总结——canvas绘制象棋 1.第一次:canvas绘制象棋(笨方法)示例代码: <!DOCTYPE html> <html> <head> & ...

  7. HTML5 学习笔记(一)——HTML5概要与新增标签

    目录 一.HTML5概要 1.1.为什么需要HTML5 1.2.什么是HTML5 1.3.HTML5现状及浏览器支持 1.4.HTML5特性 1.5.HTML5优点与缺点 1.5.1.优点 1.5.2 ...

  8. HTML5 学习笔记--------》HTML5概要与新增标签!

      一.HTML5概要 1.1.为什么需要HTML5 HTML4陈旧不能满足日益发展的互联网需要,特别是移动互联网.为了增强浏览器功能Flash被广泛使用,但安全与稳定堪忧,不适合在移动端使用(耗电. ...

  9. HTML5 学习笔记(四)——canvas绘图、WebGL、SVG

    一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...

随机推荐

  1. Android非常实用的开源项目框架

    我将文章中所描述的项目都集成在一个apk中,可以直接运行查看效果,2.2以上的机器都可以运行.因为不让直接上传apk文件,我压缩成了zip包 1. Universal-Image-Loader 实现异 ...

  2. Arch Linux 安装过程

    在VM中装了Arch,由于过程较为曲折,现写博客一篇聊以慰藉. 1.新建虚拟机,将下载好的archlinux-2016.03.01-dual.iso挂到虚拟机设置的CD/DVD 2.进入Arch安装界 ...

  3. (简单) UVA 11624 Fire! ,BFS。

    Description Joe works in a maze. Unfortunately, portions of the maze have caught on fire, and the ow ...

  4. 关于Discuz与jQuery冲突问题的亲测解决方法

    最近的一个项目整合dede和discuz程序,客户要求风格统一,所以有很多样式及特效都是要公用的.其中jQuery库定义的函数$()正好与discuz的comme.js中函数一样,这样就冲突了,导致d ...

  5. [Unity Socket]在Unity中如何实现异步Socket通信技术

    在刚刚开发Unity项目的过程中,需要用到即时通信功能来完成服务器与客户端自定义的数据结构封装. 现在将部分主要功能的实现代码抽取出来实现了可以异步Socket请求的技术Demo. 客户端脚本Clie ...

  6. 通过Jenkins跑Jmeter接口测试脚本,我想当有接口跑失败时Jenkins发送邮件通知,这个如何弄呢

    通过Jenkins跑Jmeter接口测试脚本,我想当有接口跑失败时Jenkins发送邮件通知,这个如何弄呢

  7. STM32F412应用开发笔记之八:迪文串口屏显示驱动

    迪文的显示屏使用起来比较方便,其使用串口通讯,即可支持RS232,又可以支持TTL电平.在NUCLEO-F412ZG实验板上,USART2已经引到了CN9上,我们就利用USART2来实现与迪文串口屏的 ...

  8. Dom编程(二)

    document是window对象的一个属性,因为使用window对象成员的时候可以省略window.,所以一般直接写document  document的方法: (1)write:向文档中写入内容. ...

  9. Binary转换成Hex字符串

    想调优别人的代码,网上搜索一下Binary to Hexstring的转换,全是利用printf.scanf之类实现的,效率好低,还是自己想个简单的办法吧! .......此处省略一万字....... ...

  10. Xshell连接虚拟机VMware

    最大的生活乐趣就是搞各种软件,系统,无聊的我开始搞centos了(需要对网络有深刻的理解) 一.学习使用xshell来控制VMware上的Centos6.5,可是每次重启IP都会改变 不太理解虚拟机V ...