技术交流QQ群:1027579432,欢迎你的加入!
- 动画(animation)是CSS3中具有颠覆性的特征之一,可以通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果。
-
相比于过渡而言,动画可以实现更多的变化,更多的控制,连续自动播放等效果。
动画效果.png
1.动画的基本使用
- 制作动画分为两个步骤:
- a.先定义动画;
- b.再使用(调用)动画;
1.1 先用keyframes定义动画(类似于定义类选择器)
- 定义动画语法:
@keyframes 动画名称 { 0% { width: 100px; } 100% { width: 200px; } }
- 动画序列:
- 0%是动画的开始,100%是动画的完成,这样的规则就是动画序列。
- 在@keyframes中规定某些CSS样式,这样就能创建由当前样式逐渐改为新样式的动画效果;
- 动画是使元素从一种样式逐渐变化为另一种样式的效果,你可以改变任意多的样式,任意多的次数。
- 请用百分比来规定变化发生的时间,或者使用关键字from和to,等价于0%和100%。
1.2 元素使用动画
- 使用动画语法:
<!--调用动画--> animation-name: 动画名称; <!--持续时间--> animation-duration: 持续时间;
2.动画序列实现多个状态变化
多个状态的变化.png
- 代码:
/* 1.动画序列可以做多个状态的变化 keyframe 关键帧 */ /* 2.里面的百分比一定要是整数*/ /* 3.里面的百分比就是 总的时间(本案例中是10s)的划分 25% * 10s = 2.5s*/ @keyframes move { 0% { transform: translate(0, 0); } 25% { transform: translate(1000px, 0); } 50% { transform: translate(1000px, 500px); } 75% { transform: translate(0, 500px); } 100% { transform: translate(0, 0); } } div { width: 200px; height: 200px; background-color: pink; animation-name: move; animation-duration: 10s; }
3.动画中常用的属性
动画中常用属性.png
4.动画中常用属性的简写方式[重点]
- 简写方向的语法:
animation: 动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 动画起始或者结束的状态; <!--例如--> animation: myfirst 5s linear 2s infinite alternate;
- 注意:
- 动画属性的简写方式中,不包含animation-play-state;
- 暂停动画:animation-play-state: paused;经常和鼠标经过等其他配合使用;
- 想要动画走回来,而不是直接跳回来,可以使用animation-direction: alternate;
- 盒子动画结束后,停止的结束位置用animation-fill-mode: forwards;
5.运动曲线animation-timing-function中的细节
-
animation-timing-function: 规定了动画的运动曲线,默认是eas。
速度曲线属性值.png