CSS3 Animation 动画

CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation;

Animation主要是对元素实现了一些基本的动画效果,它只能应用在页面的DOM元素上。

w3school在线文档说明

http://www.w3school.com.cn/css3/css3_animation.asp

不同浏览器兼容

div{
animation:;
-moz-animation:;	/* Firefox */
-webkit-animation:;	/* Safari 和 Chrome */
-o-animation:;	/* Opera */
}

  

CSS3 Animation 动画属性

下面的表格列出了 @keyframes 规则和所有动画属性:

属性 描述 CSS
animation 所有动画属性的简写属性,除了 animation-play-state 属性。 3
@keyframes 规定动画。 3
animation-name 规定 @keyframes 动画的名称。 3
animation-duration 规定动画完成一个周期所花费的秒或毫秒。默认是 0。 3
animation-timing-function 规定动画的速度曲线。默认是 "ease"。 3
animation-delay 规定动画何时开始。默认是 0。 3
animation-iteration-count 规定动画被播放的次数。默认是 1。 3
animation-direction 规定动画是否在下一周期逆向地播放。默认是 "normal"。 3
animation-play-state 规定动画是否正在运行或暂停。默认是 "running"。 3
animation-fill-mode 规定对象动画时间之外的状态。 3

animation

animation 属性是一个简写属性,用于设置六个动画属性:

  • animation-name
  • animation-duration
  • animation-timing-function
  • animation-delay
  • animation-iteration-count
  • animation-direction

注释:请始终规定 animation-duration 属性,否则时长为 0,就不会播放动画了。

animation: name duration timing-function delay iteration-count direction;

@keyframes

通过 @keyframes 规则,您能够创建动画。

创建动画的原理是,将一套 CSS 样式逐渐变化为另一套样式。

在动画过程中,您能够多次改变这套 CSS 样式。

以百分比来规定改变发生的时间,或者通过关键词 "from" 和 "to",等价于 0% 和 100%。

0% 是动画的开始时间,100% 动画的结束时间。

为了获得最佳的浏览器支持,您应该始终定义 0% 和 100% 选择器。

注释:请使用动画属性来控制动画的外观,同时将动画与选择器绑定。

@keyframes animationname {keyframes-selector {css-styles;}}
@keyframes mymove
{
0%   {top:0px;}
25%  {top:200px;}
50%  {top:100px;}
75%  {top:200px;}
100% {top:0px;}
}

@-moz-keyframes mymove /* Firefox */
{
0%   {top:0px;}
25%  {top:200px;}
50%  {top:100px;}
75%  {top:200px;}
100% {top:0px;}
}

@-webkit-keyframes mymove /* Safari 和 Chrome */
{
0%   {top:0px;}
25%  {top:200px;}
50%  {top:100px;}
75%  {top:200px;}
100% {top:0px;}
}

@-o-keyframes mymove /* Opera */
{
0%   {top:0px;}
25%  {top:200px;}
50%  {top:100px;}
75%  {top:200px;}
100% {top:0px;}
}

animation-name

animation-name 属性为 @keyframes 动画规定名称。

注释:请始终规定 animation-duration 属性,否则时长为 0,就不会播放动画了。

animation-name: keyframename|none;

animation-duration

animation-duration 属性定义动画完成一个周期所需要的时间,以秒或毫秒计。

animation-duration: time;

animation-timing-function

animation-timing-function 规定动画的速度曲线。

速度曲线定义动画从一套 CSS 样式变为另一套所用的时间。

速度曲线用于使变化更为平滑。

animation-timing-function: value;

animation-timing-function 使用名为三次贝塞尔(Cubic Bezier)函数的数学函数,来生成速度曲线。您能够在该函数中使用自己的值,也可以预定义的值:

描述 测试
linear 动画从头到尾的速度是相同的。 测试
ease 默认。动画以低速开始,然后加快,在结束前变慢。 测试
ease-in 动画以低速开始。 测试
ease-out 动画以低速结束。 测试
ease-in-out 动画以低速开始和结束。 测试
cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。  

提示:请试着在下面的“亲自试一试”功能中使用不同的值。

animation-delay

animation-delay 属性定义动画何时开始。

animation-delay 值以秒或毫秒计。

提示:允许负值,-2s 使动画马上开始,但跳过 2 秒进入动画。

animation-delay: time;

animation-iteration-count

animation-iteration-count 属性定义动画的播放次数。

animation-iteration-count: n|infinite;
描述 测试
n 定义动画播放次数的数值。 测试
infinite 规定动画应该无限次播放。 测试

animation-direction

animation-direction 属性定义是否应该轮流反向播放动画。

如果 animation-direction 值是 "alternate",则动画会在奇数次数(1、3、5 等等)正常播放,而在偶数次数(2、4、6 等等)向后播放。

注释:如果把动画设置为只播放一次,则该属性没有效果。

animation-direction: normal|alternate;
描述 测试
normal 默认值。动画应该正常播放。 测试
alternate 动画应该轮流反向播放。 测试

animation-play-state

animation-play-state 属性规定动画正在运行还是暂停。

注释:您可以在 JavaScript 中使用该属性,这样就能在播放过程中暂停动画。

animation-play-state: paused|running;
描述 测试
paused 规定动画已暂停。 测试
running 规定动画正在播放。 测试

animation-fill-mode

animation-fill-mode 属性规定动画在播放之前或之后,其动画效果是否可见。

注释:其属性值是由逗号分隔的一个或多个填充模式关键词。

animation-fill-mode : none | forwards | backwards | both;
描述
none 不改变默认行为。
forwards 当动画完成后,保持最后一个属性值(在最后一个关键帧中定义)。
backwards 在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值(在第一个关键帧中定义)。
both 向前和向后填充模式都被应用。
时间: 2024-11-24 05:00:04

CSS3 Animation 动画的相关文章

css3 animation动画技巧

一,css3 animation动画前言 随着现在浏览器对css3的兼容性越来越好,使用css3动画来制作动画的例子也越来越广泛,也随着而来带来了许多的问题值得我们能思考.css3动画如何让物体运动更顺畅,css3动画如何做弧线动画,css3动画是否有动画库,css3帧动画如何快速简单……   为了解决这些折磨人的问题,我们今天来分析一下: 首先介绍css3 Animation动画库: http://daneden.github.io/animate.css/ 基本涵盖了我们常见的基础css3动

CSS3 transition动画、CSS3 transform变换、CSS3 animation动画

CSS3 transition动画 1.transition-property 设置过渡的属性,比如:width height background-color2.transition-duration 设置过渡的时间,比如:1s 500ms3.transition-timing-function 设置过渡的运动方式 linear 匀速 ease 开始和结束慢速 ease-in 开始是慢速 ease-out 结束时慢速 ease-in-out 开始和结束时慢速 cubic-bezier(n,n,

css3 animation动画对应属性解释

animation Value:     [<animation-name> || <animation-duration> || <animation-timing-function> || <animation-delay> || <animation-iteration-count> || <animation-direction> || <animation-fill-mode>] [, [<animatio

css3 animation 动画属性简介

animation 动画属性介绍 animation 属性是一个简写属性,用于设置动画属性: 1. animation-name----规定需要绑定到选择器的 keyframe 名称. 语法:animation-name: keyframename|none: Keyframename:规定需要绑定到选择器的 keyframe 的名称. None: 规定无动画效果(可用于覆盖来自级联的动画). 例如: { -webkit-animation-name: my_animation; -moz-an

CSS3 animation动画与transition过渡比较

共同点 animation动画与transition过渡都可以实现动画效果,拥有下面共同的属性 animation:mymove 2s linear infinite alternate; transition: width 1s ease-out; 1.动画名称(name)@key-frame 2.过渡时间(duration)规定动画完成一个周期所花费的秒或毫秒.默认是 0. 3.延迟时间(delay)规定动画何时开始. 4.时间函数(timing-function)规定动画的速度曲线,默认是

关于css3 Animation动画

在介绍animation之前有必要先来了解一个东西,那就是“keyframes”,我们把他叫做“关键帧”: 在使用transition制作一个简单的transition效果时,包括了初始属性,最终属性以及完成过渡效果 所需的时间.速度曲线.开始时间:但是这些都无法控制的更细一些,比如说我要第一个时间段执行什么动作,第二个时间段执行什么动作,仅仅通过transition就很难实现:此时就需要“关键帧”这个东西,下面我们就来看看"keyframe"; “keyframe”命名是由"

CSS3 Animation动画

Animation自定义动画是CSS制作动画三个属性其中一个,CSS制作动画的三个元素有:Transform,Translate,Animation.元素所应用的动画名称,必须与规则@keyframes关键帧配合使用,因为动画名称由@keyframes定义. 而@keyframes关键帧有自己的语法规则,必须以@keyframes开头,后面接动画名称(自定义,语义化一点更好),然后在加对“{}”,括号中就是一些不同时间段样式规则. @keyframes语法:@keyframes<identifi

css3 animation动画事件

当使用css3时,会遇到利用@keyframes来定义动画事件,利用以下3个事件,能够捕捉当前元素的动画: AnimationEnd //动画结束时 AnimationStart  //动画開始 AnimationIteration  //动画每运行结束一次,这样的情况适用与animation-iteration-count大于1时. 对于transaction也有一个事件来捕获结束: transactionend $('.toggle-detail').on('transitionend',f

CSS3 animation动画,循环间的延时执行该怎么弄

在使用css做一些小的动画时,有些动画我们是需要其循环播放的,而且在部分动画中我们需要上一个循环与下一个循环之间存在一定的时间间隔,这个时候的animation-delay和transition-delay 只会在第一次动画开始的时候生效,而在两个循环之间是不生效的,这是我们就需要用其他的方法来实现循环之间的时间间隔. 方法:如下面的程序,我们可以把动画执行的总时间设置为4s,然后从75%开始,用后面的1s来做动画,前面的3s用作每次动画开始之前的延时,这样就可以解决循环播放delay失效的问题