当前位置: 首页 > article >正文

自学前端第二十四天:Animation动画栈帧效果

CSS3 帧动画 amimation @keyframes

amimation 是transition过渡的高级升级版

1.为什么要 amimation 一帧一帧的具体动画,因为transition进行单一型动画效果(且hover不点击时则会复原),而amimation@keyframes可以进行复合型(多帧)多运动的动画效果
2.设置了amimation的盒子也是不脱离文档流的,除非变为绝对定位.
3.amimation不会增加元素个数 , 而是可以很多段自定义的时间内让元素完成transform的各种形变而已.(元素还是得提前布置好的)
4.transition只能一次性,而amimation 可以设置播放次数
5在这里插入图片描述

.transition必须是和hover搭配来设置过渡效果的,即鼠标点击就开始过渡变化,否则直接过渡是在平面没变化体现不出的.

而amimation 是在 @keyframes { }上触发设置变化动画效果的,不搭配hover,直接在平面就有一帧一帧的动画效果,可以还可以循环播放和暂停(搭配hover),比transition强大很多,在这里插入图片描述

在 CSS3 出现之前,动画都是通过 JavaScript 动态的改变元素的样式属性来完成了,这种方式虽然能够实现动画,但是在性能上存在一些问题。CSS3 的出现,让动画变得更加容易,性能也更加好。

animation比较类似于 flash 中的逐帧动画,逐帧动画就像电影的播放一样,表现非常细腻并且有非常大的灵活性。然而transition只是指定了开始和结束态,整个动画的过程也是由特定的函数控制。学习过 flash 的同学知道,这种逐帧动画是由关键帧组成,很多个关键帧连续的播放就组成了动画,在 CSS3 中是由属性keyframes来完成逐帧动画的

@keyframes 关键帧

通过@keyframes设置自定义名称的动画关键帧 在动画关键节点设置数值

  • animationName:动画名称,开发人员自己命名;
  • percentage:为百分比值,可以添加多个百分比值;
  • properties:样式属性名称,例如:colorleftwidth等等。
@keyframes animationName {from {properties: value;}percentage {properties: value;}to {properties: value;}
}
//or (推荐)
@keyframes animationName {0% {properties: value;}percentage {properties: value;}100% {properties: value;}
}

animation 播放动画

①animation-name(动画名字)

它是用来设置动画的名称,可以同时赋值多个动画名称,用,隔开:

.selector {animation-name: none | IDENT[,none | IDENT]*;
}

②animation-duration(持续时间)

它是用来设置动画的持续时间,单位为s,默认值为0

.selector {animation-duration: <time>[,<time>]*;
}

③animation-timing-function(什么速度形式)

transition-timing-function类似:

.selector {animation-timing-function:ease加速 | linear匀速 | ease-in | ease-out | ease-in-out | cubic-bezier(<number>, <number>, <number>, <number>);
}

④animation-delay(触发动画开始播放的延时)

它是来设置动画的开始时间,单位是s或者ms,默认值为0:

.selector {animation-delay: <time>[,<time>]*;
}

⑤animation-iteration-count(即动画播放次数,而transition只能一次性)

它是来设置动画循环的次数,默认为1infinite为无限次数的循环:

.selector {animation-iteration-count: number | infinite
}

⑤animation-direction

它是来设置动画播放的方向,默认值为normal表示向前播放,alternate代表动画播放在第偶数次向前播放,第奇数次向反方向播放::

.selector {animation-direction: normal | alternate [, normal | alternate]*;
}

⑥animation-play-state .(该通常和hover搭配使用,鼠标点击的时候就暂停动画效果)

它主要是来控制动画的播放状态:running代表播放,而paused代表停止播放,running为默认值:

PS: animation-play-state 无法通过animation复合书写 只能单例设置 与 transform-origin 一样

.selector {animation-play-state:running | paused [, running | paused]*;
}

总结animation 复合写法

它是animation-nameanimation-durationanimation-timing-functionanimation-delayanimation-iteration-countanimation-direction的简写:

.selector {animation:[<animation-name> || <animation-duration> || <animation-timing-function> || <animation-delay> || <animation-iteration-count> || <animation-direction>] [, [<animation-name> || <animation-duration> || <animation-timing-function> || <animation-delay> || <animation-iteration-count> || <animation-direction>] ]*;
}
.selector {animation: move
}

css3系列之animation

animation

给元素设置动画。

animation呢,得配合@keyframes 使用,具体怎么用呢,先看下面的例子,然后再看参数的设置。

参数:

animation

animation-name

animation-duration

animation-timing-function

animation-delay

animation-iteration-count

animation-direction

animation-play-state

animation-fill-mode

img

img

img

img

animation-name:

设置要添加上的 哪组动画 名称

其实它也没什么好说,看了上面的例子,就知道怎么用了。

animation-duration:点它→transition-duration

设置完成该动画需要多长的时间,详细说明,请点上面

**animation-timing-function:**点它→transition-timing-function

设置该动画的运动效果

animation-delay:点它→transition-delay

设置延迟时间,延迟多久才执行这个动画

animation-iteration-count:

设置该动画要循环多少次播放(如果设置多个属性值,用逗号隔开)

参数:

1 :默认值。 默认只会执行一次。

infinite:无限循环。

animation-direction:

设置关键帧容器的播放顺序,也就是,我们一般的关键帧容器,是从0% 开始 到 100%,正常方向播放,使用该属性,可以改变他的方向,例如从 100% 往 0% 播放。

参数:

normal:默认值,正常方向

reverse:反方向运动。

alternate:先从正常的方向运动,然后在从反方向运动,并持续交替运动,(也就是,我们设置的次数,必须超过2)

alternate-reverse:跟上面的相反, 先从 反反向运动,然后再从正常方向运动,并持续交替运动

正方向和反方向就不看了,没什么,下面是alternate

img

animation-play-state:

设置可以暂停,和运动的属性(兼容性还不是很好,在一些场景中会有错误行为 。部分浏览器不支持伪元素动画,或者支持得不够好,尽可能不要利用伪元素来做动画)

参数:

running:默认值,运动

paused:暂停

下面的例子,设置了hover,一hover,就暂停,

img

animation-fill-mode:

设置,动画的状态吧

参数:

none:默认值。没啥效果

forwards:关键帧容器的 100% 的状态, 就是该动画结束时的样子。

backwards:关键帧容器的 0% 的状态, 就是该动画开始时的样子。

both:也就是上面两个的结合体。 开始和结束都有。

下面的例子,关键帧容器的 动画都是都一样的设置,唯独不一样的地方,就是第二个box2 加上了 animation-fill-mode:forwards 属性

所以,他动画结束后会保留,100%时的 样子。

img

img

animation

上面各属性的简写

animation:run 5s linear (5s设置延迟时间,可以不填) infinite reverse forwards

从第三个参数开始,后面的参数的位置,都是可以随意调位置的,因为他们并没有相同的属性值,所以可以 随便填,不分位置。

[css3系列之animation实现逐帧动画](

imgimg

上面这个两个简单的动画,是用 animation-timing-function: steps(); 这个属性实现的,具体如何实现,看下面:

img

这上面的图片,也就是我们的素材,

img

有些人,可能不是很理解 关键帧容器,和 steps 之间的关系,没关系,看下面的图解

img

animation综合案例1:做钟表

img

用到的素材,如上所示。

[复制代码](javascript:void(0)😉

<!DOCTYPE html>
<html lang="en">
http://www.lryc.cn/news/2419090.html

相关文章:

  • win2008 r2 安装sqlserver 2000问题的解决方法
  • 标题栏位于图纸的什么位置_【教程】教你如何看懂机械图纸!
  • 51单片机内核及其工作原理
  • WebRequest 模拟请求登录 终于搞定了!
  • cygwin下载地址
  • iOS 性能调优,成为一名合格iOS程序员必须掌握的技能
  • 进程间通信 —— 管道(Interprocess Communications —— Pipes)
  • SLM7.1SR1SP05 配置(configuration guide+ link help) - 03 initial configuration part4
  • c语言time_t转oletime,CTime、COleDateTime和CString之间的相互转化 | 求索阁
  • 《炬丰科技-半导体工艺》多晶硅表面微加工技术
  • 《Adobe After Effects CS6中文版经典教程》——1.2 创建项目并导入素材
  • 递归下降分析法js版
  • Ubuntu Kylin 20.10 优麒麟操作系统安装与体验
  • 关于MediaPlay使用方法 与基本理解
  • Linux:串口编程详解(转)
  • linux 14.04安装方法,Ubuntu 14.04下安装和配置Terminator
  • 【计算机毕业设计】Django音乐推荐系统-40803,毕设开题选题+程序定制+论文书写+答辩ppt书写-原创(题目+编号)的定制程序
  • C#开源项目
  • 收益率-计算方法介绍
  • 上市公司应计盈余管理(琼斯模型:基本Jones模型和修正Jones模型)
  • 提供真随机数源的网站
  • vue实现动态获取左侧导航宽度,右侧内容动态改变margin值
  • Google网站流量统计工具
  • 利用vps+frp实现访问公司内网windows远程桌面
  • C代码内存检测工具memwatch 使用总结
  • Windows CE的目录组织
  • JDK1.8下载、安装及环境变量配置
  • 数据库开发019 DataReader对象
  • 数字图像处理(冈萨雷斯 第三版)
  • 数据通信与计算机网络