新手都能做效果系列之——CSS3 动画

2018-11-15  本文已影响0人  锋享前端

新手都能做效果系列最后一个,CSS3属性中有关于制作动画的三个属性:
transform,transition,animation
当这几篇文档都能读懂了;就可以发挥你天马星空的想象写动画了;

在 CSS3 中创建动画,需要学习 @keyframes 规则。
@keyframes 规则用于创建动画。在 @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果

@keyframes mymove{ //mymove自定义名
from{初始状态属性}
to{结束状态属性}
}

@keyframes mymove{
0%{初始状态属性}
100%{结束状态属性}
}(中间再可以添加关键帧)

@keyframes浏览器支持情况:

动画兼容.png

animation

当然在 @keyframes 中创建动画时,请把它捆绑到某个选择器,否则不会产生动画效果。animation复合属性。检索或设置对象所应用的动画特效。两个搭配才能产生动画

首先说说animation和transition的区:
相同点:都是随着时间改变元素的属性值。
不同点:
transition需要触发一个事件(hover事件或click事件等)才会随时间改变其css属性;
而animation在不需要触发任何事件的情况下也可以显式的随着时间变化来改变元素css的属性值,从而达到一种动画的效果,css3的animation就需要明确的动画属性值。

下面一一介绍他的属性值:

1.animation-name 检索或设置对象所应用的动画名称

说明:必须与规则@keyframes配合使用,eg:@keyframes mymove{} animation-name:mymove;

2.animation-duration 检索或设置对象动画的持续时间

说明:animation-duration:3s; 动画完成使用的时间为3s

3.animation-timing-function 检索或设置对象动画的过渡类型

说明:

linear:线性过渡。等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0)
ease:平滑过渡。等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0)
ease-in:由慢到快。等同于贝塞尔曲线(0.42, 0, 1.0, 1.0)
ease-out:由快到慢。等同于贝塞尔曲线(0, 0, 0.58, 1.0)
ease-in-out:由慢到快再到慢。等同于贝塞尔曲线(0.42, 0, 0.58, 1.0)
step-start:马上跳到动画每一结束桢的状态

4.animation-delay 检索或设置对象动画延迟的时间

说明:animation-delay:0.5s; 动画开始前延迟的时间为0.5s)

5.animation-iteration-count 检索或设置对象动画的循环次数

说明:

animation-iteration-count: infinite | number;
infinite:无限循环
number: 循环的次数

6.animation-direction 检索或设置对象动画在循环中是否反向运动
说明:

normal:正常方向
reverse:反方向运行
alternate:动画先正常运行再反方向运行,并持续交替运行
alternate-reverse:动画先反运行再正方向运行,并持续交替运行

7.animation-play-state 检索或设置对象动画的状态
说明:

animation-play-state:running | paused;
running:运动
paused: 暂停
animation-play-state:paused; 当鼠标经过时动画停止,鼠标移开动画继续执行

总结一下:

好吧说这么多;大家应该也还是一脸懵;还是上代码怎么用大家就一目了然了;

animation.png
本人觉得还是上图更清晰,这个写注释也没法写哈哈;最后给大家几个小案例,提取码:30cl ;
上一篇 下一篇

猜你喜欢

热点阅读