HTML5<canvas>标签:简单介绍(0)
<canvas> 标签是 HTML 5 中的新标签,像所有的dom对象一样它有自己本身的属性、方法和事件, 其中就有绘图的方法,js能够调用它来进行绘图 ,最近在研读《html5与css3权威指南》下面对其中最好玩的canvas的学习做下读书笔记与实 验。温馨提示:以下所有实验请使用最新版的opera,火狐.
定义:
<canvas> 标签定义图形,比如图表和其他图像。
<canvas> 标签只是图形容器,您必须使用脚本(javascript)来绘制图形。
aaarticlea/png;base64,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" alt="" />
实例
如何通过 canvas 元素来显示一个红色的矩形:
<!DOCTYPE HTML>
<html>
<body>
<canvas id="myCanvas">您的浏览器不支持canvas标记!</canvas>
<script type="text/javascript">
var canvas=document.getElementById('myCanvas');
var ctx=canvas.getContext('2d');
ctx.fillStyle='#FF0000';
ctx.fillRect(0,0,80,100);
</script>
</body>
</html>
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJwAAACGCAIAAACnl3TnAAABUUlEQVR4nO3RwQkAIAwEwfTftBbgVxDGHVJAjp0Vzrx+IPcVFVRU0BF15q8TFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQUUFFRVUVFBRQeaqzxUVVFRQUUFFBRUVVFRQUUFFBRUVVFRQUUFFBRUVVFRQUUFFBRUVVFRQUUFFBRUVVFRQUUFFBRUVVFRQUUFFBRUVtAEzxswktOrIEAAAAABJRU5ErkJggg==" alt="" />
<canvas> 的历史:
这个 HTML 元素是为了客户端矢量图形而设计的。它自己没有行为,但却把一个绘图 API 展现给客户端 JavaScript 以使脚本能够把想绘制的东西都绘制到一块画布上。
<canvas> 标记由 Apple 在 Safari 1.3 Web 浏览器中引入。对 HTML 的这一根本扩展的原因在于,HTML 在 Safari 中的绘图能力也为 Mac OS X 桌面的 Dashboard 组件所使用,并且 Apple 希望有一种方式在 Dashboard 中支持脚本化的图形。
Firefox 1.5 和 Opera 9 都跟随了 Safari 的引领。这两个浏览器都支持 <canvas> 标记。
我们甚至可以在 IE 中使用 <canvas> 标记,并在 IE 的 VML 支持的基础上用开源的 JavaScript 代码(由 Google 发起)来构建兼容性的画布。 参见:http://excanvas.sourceforge.net/。
<canvas> 的标准化的努力由一个 Web 浏览器厂商的非正式协会在推进,目前 <canvas> 已经成为 HTML 5 草案中一个正式的标签。 参见:http://www.whatwg.org/specs/web-apps/current-work/
<canvas> 标记和 SVG 以及 VML 之间的差异:
<canvas> 标记和 SVG 以及 VML 之间的一个重要的不同是,<canvas> 有一个基于 JavaScript 的绘图 API,而 SVG 和 VML 使用一个 XML 文档来描述绘图。
这两种方式在功能上是等同的,任何一种都可以用另一种来模拟。从表面上看,它们很不相同,可是,每一种都有强项和弱点。例如,SVG 绘图很容易编辑,只要从其描述中移除元素就行。
要从同一图形的一个 <canvas> 标记中移除元素,往往需要擦掉绘图重新绘制它。
如何使用 <canvas> 标记绘图:
大多数 Canvas 绘图 API 都没有定义在 <canvas> 元素本身上,而是定义在通过画布的 getContext() 方法获得的一个“绘图环境”对象上。
Canvas API 也使用了路径的表示法。但是,路径由一系列的方法调用来定义,而不是描述为字母和数字的字符串,比如调用 beginPath() 和 arc() 方法。
一旦定义了路径,其他的方法,如 fill(),都是对此路径操作。绘图环境的各种属性,比如 fillStyle,说明了这些操作如何使用。
注释:Canvas API 非常紧凑的一个原因上它没有对绘制文本提供任何支持。要把文本加入到一个 <canvas> 图形,必须要么自己绘制它再用位图图像合并它,或者在 <canvas> 上方使用 CSS 定位来覆盖 HTML 文本。
HTML5<canvas>标签:简单介绍(0)的更多相关文章
- 学习笔记:HTML5 Canvas绘制简单图形
HTML5 Canvas绘制简单图形 1.添加Canvas标签,添加id供js操作. <canvas id="mycanvas" height="700" ...
- html5 canvas 实现简单的画图
今天早上看了一下 canvas 前端画图,数据可视化, 百度的 echart.js , d3等 js 库都已经提供了强大的绘制各种图形的 API. 下面记录一下 有关canvas 绘图的基本知识: ...
- [HTML5] Canvas绘制简单形状
使用canvas来进行绘画,它像很多其他dom对象一样,有很多属性和方法,操作这些方法,实现绘画 获取canvas对象,调用document.getElementById()方法 调用canvas对象 ...
- HTML5<canvas>标签:使用canvas元素在网页上绘制线条和圆(1)
什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符以 ...
- html5 canvas标签
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Html5 Canvas一个简单的画笔例子
相比了下Qt quick的canvas和HTML5的canvas,发现HTML5 Canvas在同样绘制绘制操作下性能比Qt的canvas强很多,附上一个HTML5 canvas画笔一例子 var D ...
- HTML5 canvas标签绘制正三角形 鼠标按下点为中间点,鼠标抬起点为其中一个顶点
用html5的canvas标签绘制圆.矩形比较容易,绘制三角形,坐标确定相当于前面两种难点,这里绘制的是正三角形,比较容易,我们只需要把鼠标刚按下去的点设置为三角形的中心点,鼠标抬起的点设置为三角形右 ...
- HTML5<canvas>标签:使用canvas元素在网页上绘制渐变和图像(2)
详细解释HTML5 Canvas中渐进填充的参数设置与使用,Canvas中透明度的设置与使用,结合渐进填充与透明度支持,实现图像的Mask效果. 一:渐进填充(Gradient Fill) Canva ...
- 学习HTML5, Canvas及简单动画的使用
通过在CSDN中的一些简单课程学习,跟随老师联系,做了如下的月亮,太阳和地球的运动效果.纪录在文章中,用于下次使用. 准备工作如下: 1. 使用三张背景图片 太阳 月亮 地球 2. 在HTML页面中定 ...
随机推荐
- python selenuim如何判断下拉框是否加载出来,超过时间不再等待
s_flag = True time_start = time.time() while s_flag: doc = etree.HTML(unicode.encode(driver.page_sou ...
- flex布局设置min-width
在一个flex布局中,对于一个设置了flex属性设置为1的div容器,再对其设置min-width:0,保证内容不超出外层容器
- 【mysql学习-2】
part-1: USE mysql;CREATE TABLE tb_x(id INT,NAME CHAR(10));INSERT INTO tb_x VALUES(5,"a");S ...
- 五、RegExp(正则表达式)篇
正则表达式,只用记住: 0./pattern/igm i--不区分大小写 g--找到所有相匹配的 m--多行匹配 可以只写其中一个 ps:/pattern/i (无视大小写) 1." ...
- Apache Maven(三):POM
什么是 POM? POM (Project Object Model) 项目对象模型.它是一个XML文件,其中包含有关Maven用于构建项目的项目和配置细节的信息.它包含大多数项目的默认值.例如,构建 ...
- IDEA开发vue.js卡死问题
在执行cnpm install后会在node_modules这个文件下面生成vue的相关依赖文件, 这个时候当执行cnpm run dev命令时,会导致IDEA出现卡死的问题,解决方法如下:
- Windows环境下安装redis及PHP Redis扩展
附带管理工具安装教程 安装环境 WNMP环境 参考教程:WIN10下WNMP开发环境部署 安装windows的redis服务 安装包下载 选择msi安装包下载并安装,下载可能会有点慢,请自行使用梯子. ...
- php柱状图多系列动态实现
<?php require_once 'data.php'; require_once 'jpgraph/src/jpgraph.php'; require_once"jpgraph/ ...
- 我是一个MySQL小白
我是一个MySQL小白 第一回早起装扮 “mysql,Oracle,SQL-SERVER你们三个 起床没?”,清晨七点多师父喊道. “师父,我(mysql)哪敢睡觉呀,我还在查询表呢,有客户的密码忘记 ...
- 多线程编程之Apue3rd_Chapter15.10之posix信号量
看了APUE的chapter15,只重点看了15.10,学习了posix信号量.Posix信号量比起xsi信号量的优点是性能更好,在Linux3.2.0平台上性能提升很大.其中命名信号量使用方法如下. ...