animation动画

102 阅读2分钟

今日学习animation的属性

  • @keyframes
  • animation-name
  • animation-duration
  • animation-delay
  • animation-iteration-count
  • animation-direction
  • animation-timimg-function
  • animation-fill-mode
  • animation-play-state

@keyframes规则

  1. @keyframes中指定某动画(动画名字)的css样式

image.png

image.png

@keyframes指定了动画名是scaleAnimation的动画效果是放大缩小放大缩小

  1. 还有官网实例中,通过使用关键字 "from" 和 "to"(代表 0%(开始)和 100%(完成))设置样式改变

image.png

animation-name

就是给你做动画的元素起个名字,对应这个名字做效果,可参见上面的例子,scaleAnimation和example就是两个不同的动画名,@keyframes+动画名,就对应了相应的动画名独自的动画效果

animation-duration

动画从开始到结束要用多少秒,此值必须设置,且不能为0,否则不显示动画

image.png 还是这列子,就是从红色变黄色再变蓝色最后变蓝色的过程一共需要4s

animation-delay

动画开始的延迟时间。参数可是正值或者负值

  1. 以官方例子为主, animation-delay: 2s;就是等待2s以后再开始动画效果,从第一个红色开始 image.png

  2. animation-delay: -2s; 就是已经开始了2s,直接从2s以后开始,出来的效果就是,直接从蓝色开始变绿色变红色结束

image.png

animation-iteration-count:n/infinite

n 动画效果运行多少次 infinite 动画永远运行:

animation-direction

指定是向前播放、向后播放还是交替播放动画。

  • normal - 动画正常播放(向前)。默认值
  • reverse - 动画以反方向播放(向后)
  • alternate - 使动画先向前运行,然后向后运行
  • alternate-reverse - 使动画先向后运行,然后向前运行

animation-timing-function

  • ease 开始慢速,中间加快,结束慢速 (默认)
  • linear 匀速
  • ease-in 开始慢速
  • ease-out 结束慢速
  • ease-in-out 开始和结束均慢速
  • cubic-bezier(n,n,n,n) 贝塞尔函数中定义自己的值

animation-fill-mode:

image.png

tip:这个属性,不李姐,看了效果图也没啥感觉

animation-play-state: paused|running;

  • paused -暂停
  • running -播放

animation简写

div {
  animation: example 5s linear 2s infinite alternate;
}
div {
  animation: animation-name,animation-duration,animation-timing-function,animation-delay,
             animation-iteration-count,animation-direction
}