欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!

 

<canvas> 标签定义图形,比如图表和其他图像,你必须使用脚本来绘制图形。

比如在画布上(Canvas)画一个红色矩形,渐变矩形,彩色矩形,和一些彩色的文字。

前端必会的 HTML5 Canvas标签讲解

 

什么是 canvas?

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

<canvas> 标签只是图形容器,您必须使用脚本来绘制图形。

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

前端必会的 HTML5 Canvas标签讲解

iphone

创建一个画布(Canvas)

一个画布在网页中是一个矩形框,通过 <canvas> 元素来绘制。

注意: 默认情况下 <canvas> 元素没有边框和内容。

<canvas>简单实例如下:

<canvas id="myCanvas" width="200" height="100"></canvas>

注意: 标签通常需要指定一个id属性 (脚本中经常引用), width 和 height 属性定义的画布的大小。

提示:你可以在HTML页面中使用多个 <canvas> 元素.

前端必会的 HTML5 Canvas标签讲解

 

1.使用 style 属性来添加边框:

<canvas id="myCanvas" width="200" height="100"

style="border:1px solid #000000;">

</canvas>

2.使用 JavaScript 来绘制图像

canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成:

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.fillStyle="#FF0000";

ctx.fillRect(0,0,150,75);

前端必会的 HTML5 Canvas标签讲解

 

实例解析:

3.首先,找到 <canvas> 元素:

var c=document.getElementById("myCanvas");

4.然后,创建 context 对象:

var ctx=c.getContext("2d");

getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

下面的两行代码绘制一个红色的矩形:

ctx.fillStyle="#FF0000";

ctx.fillRect(0,0,150,75);

设置fillStyle属性可以是CSS颜色,渐变,或图案。fillStyle 默认设置是#000000(黑色)。

fillRect(x,y,width,height) 方法定义了矩形当前的填充方式。

前端必会的 HTML5 Canvas标签讲解

iphone

Canvas 坐标

canvas 是一个二维网格。

canvas 的左上角坐标为 (0,0)

上面的 fillRect 方法拥有参数 (0,0,150,75)。

意思是:在画布上绘制 150x75 的矩形,从左上角开始 (0,0)。

坐标实例

如下图所示,画布的 X 和 Y 坐标用于在画布上对绘画进行定位。鼠标移动的矩形框上,显示定位坐标。

前端必会的 HTML5 Canvas标签讲解

 

Canvas - 路径

在Canvas上画线,我们将使用以下两种方法:

moveTo(x,y) 定义线条开始坐标

lineTo(x,y) 定义线条结束坐标

绘制线条我们必须使用到 "ink" 的方法,就像stroke().

定义开始坐标(0,0), 和结束坐标 (200,100)。然后使用 stroke() 方法来绘制线条:

前端必会的 HTML5 Canvas标签讲解

 

Canvas - 文本

使用 canvas 绘制文本,重要的属性和方法如下:

font - 定义字体

fillText(text,x,y) - 在 canvas 上绘制实心的文本

strokeText(text,x,y) - 在 canvas 上绘制空心的文本

使用 fillText():

使用 "Arial" 字体在画布上绘制一个高 30px 的文字(实心):

前端必会的 HTML5 Canvas标签讲解

 

JavaScript:

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.font="30px Arial";

ctx.fillText("Hello World",10,50);

如需转载,请注明文章出处和来源网址:ag亚游代理/www16a3divcss516a3com/html5/h50912.shtml

中国歼20正式服役为何却未大量生产 受三点因素制约 韩国国家队新一期集训名单:孙兴慜领衔 无中超球员 媒体:刚装修就出租 不能让租客当“人肉”净化器 菲尔普斯补办婚礼晒新人照 美妻相伴夫复何求|图 2018北京马拉松报名暂未启动 别再传谣了! 汤森路透发布科技领导企业榜:微软第一 腾讯入围 江苏主帅:部分队员准备很好 但有人提前放弃了 她被誉为“财政部最怕代表” 履职10年人称犀利姐 中美贸易摩擦30天思考:科技成竞争核心 中企阵痛难免 比利时国家队大名单:曼城切尔西核心 中超双星 北京冬奥组委启动千人大讨论 汇各方智慧推进筹办 毒贩被便衣警察追捕 情急之下掏手机报警称遭抢劫
国家邮政局:加大投入解决快递抛扔件、摆地摊问题 美媒解码为何中国治堵比美成效高?源于这两个优势 女子遇车祸又查出感染艾滋 医生“全副武装”手术 中国改变南亚“地区规则”?一带一路正切中所需 中超前瞻:国安迎抢榜首良机 恒丰绝境求生拼上港 胯下运球变向直接晃倒对手!吴圣凯惊险11连胜 美议员要求在美国人口普查表增加“台湾人”选项 浪潮孙丕恕:推动人工智能与工业互联网的融合发展 科技部部长万钢答记者问(全文) 新赛季羽超有新动作:21分制将改为15分制 易信金融:基本面数据不佳 使得非美多头信心不足 最暖辅警:闯红灯扶起晕倒在车道的96岁老人(图)
先威胁再改口会谈后宣布胜利 特朗普套路被看穿? 费列罗28亿美元收购雀巢美国糖果业务 队长:没法要求格子长留马竞 现在全力以赴就行 中美开始“接火” 韩国心慌了:大哥动手 小弟遭殃 间歇期前权健还有三场硬仗 联赛主场首胜重中之重 特朗普容克同意美欧暂时停火 但贸易休战期或很短 [新浪彩票]05日竞彩异常指数:因戈尔造热难胜 真吹不动C罗了 明明33岁了!极限到底在哪里 水原主帅:双线作战很困难 稳扎稳扎有信心取三分 浙江金融控股有限公司董事长钱巨炎接受组织审查 春节预计650万人次出境游 90后怕被逼婚宁愿旅行 昆楚高速发生14起交通事故 53辆车相撞4人坠亡 韩国去年旅游逆差创新高 中国游客减少近半 ag亚游代理