canvas有什么用_什么是Canvas?

什么是Canvas?

canvas是HTML5提供的一种新标签。

canvas 的意思是“画布”。画布是一个矩形区域,您可以控制其每一像素。

用于图形的绘制,也可用于创建图片特效和动画。通过脚本(JavaScipt)来完成。

Canvas 可以用来做些什么呢?

常规的一些图形和文字效果(当然也可以用CSS3来实现),比如:纯色矩形、渐变矩形、彩色矩形、彩色文字等

81cfff40a5de9fea0e8060ed2d18ed04.png

粒子动画

摩字官网背景粒子效果

canvas 3D万花筒效果

1c67a65ed6e96b1774946b5664111c03.gif

3D图片特效

3D图片特效

a1b3cd395da46579fe9602ed68872b6c.gif

Canvas 的案例

案例1:生命之下,想象之上

出品:腾讯互动娱乐

案例1:外星人入侵地球竟是为了…

出品:天猫

Canvas 基础教程

1.创建一个画布

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

2.使用 JavaScript 来绘制图像

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

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

3.Canvas 坐标

  • 是一个二维网络,左上角坐标为(0,0)

4.Canvas 路径

1、绘制线条

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

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

2、绘制圆形

  • arc(x,y,r,start,stop)

5.Canvas 文本

  • font - 定义字体

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

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

6.Canvas 渐变

  • createLinearGradient(x,y,x1,y1) - 创建线条渐变

  • createRadialGradient(x,y,r,x1,y1,r1) - 创建一个径向/圆渐变

7.Canvas 图像

  • 把一幅图像放置到画布上

4f4c8e5289a276bb70f4ba415eada20e.png

8.打造高大上的粒子动画

1、绘制粒子轮廓图

  • 创建一个元素,并获取Canvas画布渲染上下文

  • 使用canvas的图像操作API绘制图像

  • f2f41c81aa0b1a93567e7eb726ef4bb1.png

  • 获取图像的像素信息,并根据像素信息重新绘制出粒子效果轮廓图

2、制作粒子动画

  • 要让粒子效果比较明显,那就不能让动画效果执行太过整体,需要让图案上每个粒子有不同的时间间隔启动。根据一定的规律交错的执行动画。这里的粒子启动间隔有两种,一种是每一行粒子执行时间间隔,要让每一行的粒子启动时间有规律错开;另外一种是每一行粒子之间启动时间随机的错开,这样执行的粒子动画才会有一种层次感和每个粒子有独立动画的颗粒感。

56d066937dc34a87b86eab9aef4efdb5.gif

该粒子动画是怎么实现的呢?

其实是用了一张logo图片,如下图:

4d196ae250c3f1252f4bbbc014476ff5.gif

细心观察就会发现粒子动画其实是有差异的。通过设置不一样的缓动函数,是可以展示不一样的粒子效果。这也是Canvas的神奇之处。

41605633d29b81f8c8c502cd4baa3232.gif

canvas的用途还很广泛,还可以做各种动态效果、小游戏、3D特效等等。

在这里只是简单的介绍一下常见的动画效果和基本用法。

8e7d534c721daf509d54bdfa888ba76a.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值