欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

animation属性详解

程序员文章站 2022-03-01 20:51:03
...

写在前面

css3的animation可以实现很多炫酷的动画,让自己的网页看起来更加生动灵活,下面,来看一下都有些什么玩意属性。

动画属性

首先,我们看一下具体写法

animation: name duration timing-function delay iteration-count direction fill-mode play-state;

具体化表现形式

animation:myAnim 1s linear 1s infinite alternate both running;
分别是:
	关键帧名字,
	1个周期1秒,
	动画速度相同,
	动画1秒后开始,
	无限播放,
	可以反向播放,
	动画在两个方向上扩展动画属性,
	开始播放动画

都有什么属性呢

  1. animation-name:指定要绑定到选择器的关键帧的名称。
  2. animation-duration:定义动画完成一个周期需要多少秒或毫秒
  3. animation-timing-function:指定动画将如何完成一个周期。
说明
linear 动画从头到尾的速度是相同的。
ease 默认。动画以低速开始,然后加快,在结束前变慢。
ease-in 动画以低速开始。
ease-out 动画以低速结束。
ease-in-out 动画以低速开始和结束。
cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。
step-start 在变化过程中,都是以下一帧的显示效果来填充间隔动画
step-end 在变化过程中,都是以上一帧的显示效果来填充间隔动画
steps() 可以传入两个参数,第一个是一个大于0的整数,他是将间隔动画等分成指定数目的小间隔动画,然后根据第二个参数来决定显示效果。第二个参数设置后其实和step-start,step-end同义,在分成的小间隔动画中判断显示效果。

其中 cubic-bezier(n,n,n,n) 称为三次贝塞尔曲线,速度曲线,反正我也不知道怎么算的。
可以通过工具定制=》戳他

  1. animation-delay:属性定义动画什么时候开始。
  2. animation-iteration-count :定义动画播放多少次数。
说明
n 一个数字,定义应该播放多少次动画
infinite 指定动画应该播放无限次(永远)
  1. animation-direction:定义是否循环交替反向播放动画。
说明
normal 默认值。动画按正常播放。
reverse 动画反向播放。
alternate 动画在奇数次(1、3、5…)正向播放,在偶数次(2、4、6…)反向播放。
alternate-reverse 动画在奇数次(1、3、5…)反向播放,在偶数次(2、4、6…)正向播放。
initial 设置该属性为它的默认值。
inherit 从父元素继承该属性。
  1. animation-fill-mode:规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。
说明
none 默认值。动画在动画执行之前和之后不会应用任何样式到目标元素。
forwards 在动画结束后(由 animation-iteration-count 决定),动画将应用该属性值。
backwards 动画将应用在 animation-delay 定义期间启动动画的第一次迭代的关键帧中定义的属性值。这些都是 from 关键帧中的值(当 animation-direction 为 “normal” 或 “alternate” 时)或 to 关键帧中的值(当 animation-direction 为 “reverse” 或 “alternate-reverse” 时)。
both 动画遵循 forwards 和 backwards 的规则。也就是说,动画会在两个方向上扩展动画属性。
initial 设置该属性为它的默认值。
inherit 从父元素继承该属性。
  1. animation-play-state:指定动画是否正在运行或已暂停。
说明
paused 指定暂停动画。
running 指定正在运行的动画。

keyframes属性

keyframes:定义动画规则,关键帧。

说明
animationname 必需的。定义animation的名称。
keyframes-selector 必需的。动画持续时间的百分比。
css-styles 必需的。一个或多个合法的CSS样式属性

至于写法,一种用fromto,一种用0%100%

@keyframes myAnim{
   from { background: #f00; }
   50% { background: #0f0; }
   to { background: yellowgreen; }
}
@keyframes myAnim{
	0% { background: #f00; }
	50% { background: #0f0; }
	100% { background: yellowgreen; }
}