动效开发

动效开发

技术能力

  • Javascript
  • Css
  • SVG
  • Canvas

我们需要把重心放在CSS3动画上面,因为当红小生就是CSS3结合JavaScript

CSS3

transition过度动画

如果没有transition元素,元素之间的状态变化过程就会显得生硬而突兀

animation动画

动画基本框架

(animation:动画名称 动画时长 动画运动速度 延迟时间 执行次数 往返动画)

div{
    animation:name 1s linear 1s infinite;
}

@keyframes name {
  from{
    //CODE
  }
  to {
    //CODE
  }
}

学习它之前需要掌握两个基本知识点

  • 关键帧
  • animation属性

关键帧

@keyframes用来定义动画的具体内容

  1. 叫什么名字?
  2. 动画开始,中间状态,结束 做哪些动作
  3. 每个状态出现在动画过程的哪个时间点

animation属性

  • 指定元素用什么动画?(animation-name)
  • 动画的持续时间是多少?(animation-duration)
  • 浏览器用什么样的时间轴函数来执行该动画?(animation-timing-function)
  • 是否需要延时执行该动画?(animation-delay)
  • 动画循环执行的次数是多少?(animation-iteration-count)
  • 动画执行的方向是什么?(animation-direction)
  • 动画填充模式是什么?(animation-fill-mode)
    • none 不做任何改变
    • backwards 等待状态的时候显示动画第一帧的样式
    • forwards 结束状态的时候显示动画的最后一帧的样式
    • both forwards+backwards
  • 动画执行状态是运行还是暂停?(animation-play-state)

3D

很多时候,仅仅将元素进行二维层面的变换并不能完美表现.3D相对于2D坐标系多了Z轴

  • 透视的概念理解perspective属性
  • 空间变换体系transform-style
  • Z 轴位移translateZ

what is the perspective?

n. 观点;远景;透视图

超越平面的限制在于transform-style: preserve-3d这个属性设置,默认为flat。这个属性的设置旨在告诉子元素需要遵循怎样的空间体系规则。这个属性不能继承,因此只要有子元素需要设置空间体系规则,就得在父元素声明这个属性

动画的分类

  • 补间动画
  • 逐帧动画

补间动画

人为设定动画的关键状态(也就是关键帧),而关键帧之间的过渡过程则由计算机处理渲染的动画处理形式。

逐帧动画

原理即将每帧不同的图像连续播放,从而产生动画效果

  • 不同的图像
  • 连续播放

举例

  1. GIF
  2. Jacascript控制动画播放
  3. Canvas

将动画帧合并成雪碧图,放到 background-image 中,通过 JavaScript 改变 background-position 的值来实现动画的播放。

使用 JavaScript 实现逐帧动画,兼容性佳,且交互灵活


  转载请注明: linis 动效开发

 上一篇
Java-集合 Java-集合
集合数组的长度是固定的,操作数据很麻烦,java内部给我们提供了集合类用来存放数据的一个容器。不仅可以存储对象,长度可改变 集合类 它的长度可以改变 能存储任意的对象 长度是随着你元素的增加而增加 数组和集合区别? 数组可以存基本数据
2019-04-20
下一篇 
Django-邮件系统 Django-邮件系统
准备工作 host user pass smtp.qq.com 3335215292@qq.com 授权码 syw....vthtk.... smtplib库发送邮件 import smtplib from email.mime
2019-04-18
  目录