canvas标签的基本用法
1、canvas和其他标签一样使用,但是IE8以下是不支持的,可以在canvas里面加一个span用来提示,例如:
- <canvas>
- <span>IE8不支持canvas</span>
- </canvas>
另外画布的大小,需要直接在内联样式里面设置,而不要在外部样式表里面设置,在外部样式表里设置宽高后,canvas里面的元素也会同比缩放,例如:
- <canvas id="c1" width="400" height="400">
- <span>IE8不支持canvas</span>
- </canvas>
2.画方形
oC.fillRect(x,y,w,h); 4个参数依次为x坐标,y坐标,宽,高。同理边框矩形也是oC.strokeRect(x,y,w,h);
绘图之前可以设置绘图样式:
oGC.fillStyle = 'red';
oGC.strokeStyle = 'blue';
oGC.lineWidth = 10;
oGC.lineJoin = 'bevel';//控制线的边角 miter(默认) round(圆角) bevel(斜角)
3、绘制路径
设置路径的相关方法beginPath() closePath() moveTo() lineTo()
设置好路径后,通过oGc.storke()或者oGc.fill()来绘制
同理也可以在绘制前设置样式,直线还有一个特殊的样式,端点样式oGc.lineCap = 'round' 用的不多
还有两个方法,用来将设置样式值针对某一块代码的oGc.save() oGc.restore().
示例代码:
- oGC.save();
- oGC.fillStyle = 'red';
- oGC.beginPath();
- oGC.moveTo(100,100);
- oGC.lineTo(200,200);
- oGC.lineTo(300,200);
- oGC.closePath();
- oGC.fill();
- oGC.restore();
- oGC.beginPath();
- oGC.moveTo(100,200);
- oGC.lineTo(200,300);
- oGC.lineTo(300,300);
- oGC.closePath();
- oGC.fill();
4、绘制弧形路径
相关方法:oGC.arc(200,200,150,0,90*Math.PI/180,true);参数一次是圆心坐标,半径,起始弧度,结束弧度,是否逆时针方向。
几个绘制其他弧形的方法:
oGC.arcTo(100,100,200,100,100); oGC.quadraticCurveTo(100,100,200,100); oGC.bezierCurveTo(100,100,200,200,200,100); 和贝塞尔曲线相关,用的不多。
5.变换
变换也是有三种translate,scale,rotate
6.插入图片
drawImage(obj,x,y,w,h); 五个参数依次是图片对象,x,y坐标,宽高。由于图片得提前加载好,所以可以利用图片预加载,当图片加载好了之后,在执行往canvas里面插入图片。
7.设置背景
createPattern(obj,'repeat'); 两个参数依次是图片对象和平铺方式。用法如下:
- var bg = oGC.createPattern(obj,'repeat');
- oGC.fillStyle = bg;
- oGC.fillRect(0,0,300,300);
8.渐变
线性渐变:createLinearGradient(x1,y1,x2,y2); 4个参数依次是起始点的坐标,结束点的坐标。用法如下:
- var obj = oGC.createLinearGradient(150,100,250,200);
- obj.addColorStop(0,'red');
- obj.addColorStop(0.5,'yellow');
- obj.addColorStop(1,'blue');
- oGC.fillStyle = obj;
- oGC.fillRect(150,100,100,100);
放射性渐变:createRadialGradient(x1,y1,r1,x2,y2,r2); 参数依次是第一个圆的坐标和半径,第二个圆的坐标和半径。用法如下:
- var obj = oGC.createRadialGradient(200,200,100,200,200,150);
- obj.addColorStop(0,'red');
- obj.addColorStop(0.5,'yellow');
- obj.addColorStop(1,'blue');
- oGC.fillStyle = obj;
- oGC.fillRect(0,0,oC.width,oC.height);
9.添加文字
fillText('你好',x,y); 参数依次是需要添加的文字,以及坐标 strokeText用法一样。
在添加文字之前,需要设置一些文字的样式。例如:
oGc.font = '60px impact'; oGc.textBaseline = 'top'(上下对齐方式)
还可以通过oGc.measureText(str).width;来获取宽度,高度和文字大小相等。综合用法如下:
- oGC.font = '60px impact';
- oGC.textBaseline = 'top'; //middle bottom
- var w = oGC.measureText('hello word').width;
- oGC.fillText('hello word',(oC.width - w)/2,(oC.height - 60)/2);
10.添加阴影
oGc.shadowOffsetX = 10;//偏移量
oGc.shadowColor = 'red'; //阴影颜色
oGc.shadowBlue = 3 //模糊值
canvas标签的基本用法的更多相关文章
- Html5新标签解释及用法
Html5新标签解释及用法 HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1.0 and DOM Level 2 HTML 标准.它希望能够减少浏览器对于需要 ...
- canvas学习笔记(上篇)-- canvas入门教程 -- canvas标签/方块/描边/路径/圆形/曲线
[上篇] -- 建议学习时间4小时 课程共(上中下)三篇 此笔记是我初次接触canvas的时候的学习笔记,这次特意整理为博客供大家入门学习,几乎涵盖了canvas所有的基础知识,并且有众多练习案例, ...
- [HTML5] 新标签解释及用法
转自:http://www.cnblogs.com/yuzhongwusan/archive/2011/11/17/2252208.html HTML 5 是一个新的网络标准,目标在于取代现有的 HT ...
- canvas标签(1)--线条、矩形、圆形、文本、阴影、抛小球
从网上扒拉的代码,敲了敲代码玩. html页面显示内容很简单,只要写个canvas标签,给他一个id写js就可以了 <!DOCTYPE html> <html> <hea ...
- html5 canvas标签
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- HTML5新增Canvas标签及对应属性、API详解(基础一)
知识说明: HTML5新增的canvas标签,通过创建画布,在画布上创建任何想要的形状,下面将canvas的API以及属性做一个整理,并且附上时钟的示例,便于后期复习学习!Fighting! 一.标签 ...
- html5之canvas困惑 在canvas标签内需要设置了宽跟高,如果在css中设置同样的宽跟高,画出来的图像变形了?
<canvas class="cvs"></canvas> 遇到的问题: 如css 中设.cvs{width:500px;height:400px;},也就 ...
- HTML5 canvas标签绘制正三角形 鼠标按下点为中间点,鼠标抬起点为其中一个顶点
用html5的canvas标签绘制圆.矩形比较容易,绘制三角形,坐标确定相当于前面两种难点,这里绘制的是正三角形,比较容易,我们只需要把鼠标刚按下去的点设置为三角形的中心点,鼠标抬起的点设置为三角形右 ...
- [html5] 学习笔记-Canvas标签的使用
Canvas通过JavaScript来绘制2D图形.Canvas是逐像素渲染的.在Canvas中,一旦图形被绘制完成,它就不会继续得到浏览器的关注.如果其位置发生变化,那么整个场景也需要重新绘制,包括 ...
随机推荐
- apache跨域图片配置
修改httpd.conf 1 找到 网站目录设置 <Directory "/var/www"> AllowOverride ALL # Allow open acces ...
- 表单:checkbox、radio样式(用图片换掉默认样式)
checkbox.radio样式(用图片换掉默认样式) <!doctype html> <html> <head> <meta charset="u ...
- 3.circle (圆)
1.HTML代码: <div class="circleOne"></div> <br/> <div class="circle ...
- DBCP连接池配置常用参数说明
参数 默认值 说明 username \ 传递给JDBC驱动的用于建立连接的用户名 password \ 传递给JDBC驱动的用于建立连接的密码 url \ 传递给JDBC驱动的用于建立连接的URL ...
- 64位win10系统无法安装.Net framework3.5的两种解决方法
参考网站: https://blog.csdn.net/zang141588761/article/details/52177290 在Windows10中,当我们安装某些软件的时候会提示“你的电脑上 ...
- java二维数组的长度
//多少行 a.length //多少列 a[i].length
- as3 object与dictionary区别
AS3中的Dictionary类(flash.utils.Dictionary)是一个新的AS类.Dictionary类和Object唯一的区别在于:Dictionary对象可以使用非字符串作为键值对 ...
- jdk升级到9,eclipse打不开
jdk从1.8到1.9之后删除了不少之前Deprecated的类. eclipse 版本oxygen和neon对应jdk1.8 eclipse 版本luna和mars对应jdk1.7,1.6 在打开e ...
- UI5-文档-4.25-Sorting and Grouping
为了使我们的发票列表更加用户友好,我们将它按字母顺序排序,而不是仅仅显示来自数据模型的顺序.此外,我们还引入了组,并添加了发布产品的公司,以便更容易使用数据. Preview The list is ...
- Haskell语言学习笔记(52)正则表达式
Text.Regex.PCRE.Heavy $ brew install pcre $ cabal install pcre-heavy Installed pcre-heavy-1.0.0.2 Pr ...