白癜风治疗费用 http://pf.39.net/xwdt/181005/6562617.html一、canvas简介
canvas是HTML5新增的,一个可以使用脚本(通常为JavaScript)在其中绘制图像的HTML元素。它可以用来制作照片集或者制作简单(也不是那么简单)的动画,甚至可以进行实时视频处理和渲染。
它最初由苹果内部使用自己MacOSXWebKit推出,供应用程序使用像仪表盘的构件和Safari浏览器使用。后来,有人通过Gecko内核的浏览器(尤其是Mozilla和Firefox),Opera和Chrome和超文本网络应用技术工作组建议为下一代的网络技术使用该元素。
Canvas是由HTML代码配合高度和宽度属性而定义出的可绘制区域。JavaScript代码可以访问该区域,类似于其他通用的二维API,通过一套完整的绘图函数来动态生成图形。
Mozilla程序从Gecko1.8(Firefox1.5)开始支持canvas,InternetExplorer从IE9开始canvas。Chrome和Opera9+也支持canvas。
二、Canvas基本使用
canvas元素
2.1canvas元素
canvas看起来和img标签一样,只是canvas只有两个可选的属性width、heigth属性,而没有src、alt属性。
如果不给canvas设置widht、height属性时,则默认width为、height为,单位都是px。也可以使用css属性来设置宽高,但是如宽高属性和初始比例不一致,他会出现扭曲。所以,建议永远不要使用css属性来设置canvas的宽高。
替换内容
由于某些较老的浏览器(尤其是IE9之前的IE浏览器)或者浏览器不支持HTML元素canvas,在这些浏览器上你应该总是能展示替代内容。
支持canvas的浏览器会只渲染canvas标签,而忽略其中的替代内容。不支持canvas的浏览器则会直接渲染替代内容。
用文本替换:
实例
用img替换:
实例
结束标签/canvas不可省略。
与img元素不同,canvas元素需要结束标签(/canvas)。如果结束标签不存在,则文档的其余部分会被认为是替代内容,将不会显示出来。
2.2渲染上下文(ThreRendingContext)
canvas会创建一个固定大小的画布,会公开一个或多个渲染上下文(画笔),使用渲染上下文来绘制和处理要展示的内容。
我们重点研究2D渲染上下文。其他的上下文我们暂不研究,比如,WebGL使用了基于OpenGLES的3D上下文(experimental-webgl)。
实例
2.3 检测支持性
实例
2.4 代码模板
2.5一个简单的例子
以下实例绘制两个长方形:
实例
三、绘制形状
3.1 栅格(grid)和坐标空间
如下图所示,canvas元素默认被网格所覆盖。通常来说网格中的一个单元相当于canvas元素中的一像素。栅格的起点为左上角,坐标为(0,0)。所有元素的位置都相对于原点来定位。所以图中蓝色方形左上角的坐标为距离左边(X轴)x像素,距离上边(Y轴)y像素,坐标为(x,y)。
后面我们会涉及到坐标原点的平移、网格的旋转以及缩放等。
实例
3.2 绘制矩形
canvas只支持一种原生的图形绘制:矩形。所有其他图形都至少需要生成一种路径(path)。不过,我们拥有众多路径生成的方法让复杂图形的绘制成为了可能。
canvast提供了三种方法绘制矩形:
1、fillRect(x,y,width,height):绘制一个填充的矩形。
2、strokeRect(x,y,width,height):绘制一个矩形的边框。
3、clearRect(x,y,widh,height):清除指定的矩形区域,然后这块区域会变的完全透明。
说明:这3个方法具有相同的参数。
x,y:指的是矩形的左上角的坐标。(相对于canvas的坐标原点)
width,height:指的是绘制的矩形的宽和高。
functiondraw(){varcanvas=document.getElementById(tutorial);if(!canvas.getContext)return;varctx=canvas.getContext(2d);ctx.fillRect(10,10,,50);//绘制矩形,填充的默认颜色为黑色ctx.strokeRect(10,70,,50);//绘制矩形边框}draw();
今天我们先写到这里明天继续写!