css动画-animation各个属性详解css3的 animation 很容易就能实现各种酷炫的动画,虽然看到别人的成果图会觉得很难,但是如果掌握好各种动画属性,做好酷炫吊炸天的动画都不在话下,好,切入正题...

css动画-animation各个属性详解
css3的 animation 很容易就能实现各种酷炫的动画,虽然看到别人的成果图会觉得很难,但是如果掌握好各种动画属性,做好酷炫吊炸天的动画都不在话下,好,切入正题。
一、动画属性
动画属性包括:
①animation-name
②animation-duration
③animation-timing-function
④animation-delay
⑤animation-iteration-count
⑥animation-direction
⑦animation-fill-mode
⑧animation-play-state
属性详解
1、animation-name:指定要绑定到选择器的关键帧的名称。
2、animation-duration:定义动画完成一个周期需要多少秒或毫秒
3、animation-timing-function:指定动画将如何完成一个周期。

关于cubic-bezier(n,n,n,n):
- cubic-bezier(n,n,n,n)称为三次贝塞尔曲线,速度曲线。
- cubic-bezier(n,n,n,n) 曲线定制
- 小球落地又弹起demo
我不知道这个cubic-bezier曲线是怎么算出来的,难道是要靠自己试出来的嘛,不知道有没有人知道怎么算出来的。???
演示demo(4个方块背景颜色变化)
demo解析:
①step-start:20%(background: green;)到60%(background: blue;)之间,显示的是60%的效果(background: blue;)
②step-end:与step-start相反,20%(background: green;)到60%(background: blue;)之间,显示的是20%的效果(background: green;)
③steps(1, start) 等于step-start,steps(1,end)等于step-end
④steps函数的工作机制:

4、animation-delay:定义动画什么时候开始。
属性解析:
- 单位可以是秒(s)或毫秒(ms)。
- 单位可以是负值,-2s表示动画立马开始,但跳过 2 秒进入动画,即前2秒的动画不执行,直接跳过前2秒进入动画。
演示DEMO:
- 类似音波的加载效果demo
demo解析:
①设置同样的动画,通过animation为负值来实现不同时间段的线条的长度。

②效果示意:
一次动画1.2s,分解为12个阶段,每个阶段0.1秒。每个阶段的第3秒线拉长。
line1是从0进入动画。
line2是跳过前11个阶段,即直接从11进入动画。
依次类推…
③写5个div时,连着写,然后自己设置margin,一方面避免代码压缩后各线条之间没有空隙,另一方面避免自己不知道5根线的总宽度。 - 京东全民寻宝demo
demo解析:
①如果没有steps(8),图片会从第一行字直接跳到最后一行,中间的6行不会出现。
5、animation-iteration-count :定义动画应该播放多少次。
6、animation-direction:定义是否循环交替反向播放动画。

6.1 如果动画被设置为只播放一次,该属性将不起作用。
6.2 动画循环播放时,每次都是从结束状态跳回到起始状态,再开始播放。animation-direction属性可以重写该行为。
7、animation-fill-mode:规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。

解析:
- 默认情况下,CSS 动画在第一个关键帧播放完之前不会影响元素,在最后一个关键帧完成后停止影响元素。animation-fill-mode 属性可重写该行为。
- forwads表示让动画停留在结束状态,即停留在最后一帧。
- backwords:
当 animation-direction 为 “normal” 或 “alternate” 时,回到第一帧。
当 animation-direction 为 “reverse” 或 “alternate-reverse” 时,停留在最后一帧。
8、animation-play-state:指定动画是否正在运行或已暂停。
8.1 在JavaScript中使用此属性在一个周期中暂停动画。
8.2 线条鼠标悬停开始 动画demo
二、动画相关
1、animation的简写(即上述属性的介绍顺序)
具体化可以记成一下形式:
animation:myAnim 1s linear 1s infinite alternate both running;
2、keyframes:定义动画规则,关键帧。

具体格式:
- 指定的变化时发生时使用%,或关键字"from"和"to",这是和0%到100%相同。以下两段代码效果相同。
- 如果省略某个状态,浏览器会自动推算中间状态。但是,为了获得最佳的浏览器支持,应该始终定义0%和100%的选择器。
- 可以将多个状态写在一行。
IE 10和Firefox(>= 16)支持没有前缀的animation,firefox(<16)使用-moz-前缀,因为现在firefox的版本也都不低,所以firefox都直接使用没有前缀的animation。
而chrome,safari,opera不支持,所以必须使用webkit前缀。
使用示例如下:
4、定义动画时,必须定义动画的名称和动画的持续时间。如果省略持续时间,动画将无法运行,因为默认值是0。
更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。
程序员编程交流QQ群:805358732
如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。
