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)规定动画的速度曲线,默认是 "ease"。

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

区别

animation动画比transition过渡多了下面的属性。

1、播放次数(iteration-count)

animation:mymove 2s linear infinite; 

参数:

n:表示播放n次

infinite:无限播放

2、播放方向(direction)

animation:mymove 2s linear 1 alternate;

参数:

normal:默认值。动画应该正常播放。

alternate:动画先正后反播放。

reverse:动画反向播放。

3、动画时间外的状态(fill-mode)

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

4、是否暂停(play-state)

animation-play-state: paused|running;

另外animation解决了transition与display不兼容的bug。

相关代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            .demo1{
                width:100px;
                height: 100px;
                background: #608CF8;
                transition: transform 1s ease-out;
            }
            .demo1:hover{
                transform: rotate(90deg);
            }

            .demo2{
                width:200px;
                height:200px;
                background: #849320;
            }
            .demo2:hover{
                animation:mymove 2s linear infinite alternate;
            }
            @keyframes mymove{
                100%{
                    transform:translateX(200px)
                }
            }
        </style>
    </head>
    <body>
        <div class="demo1">transition</div>
        <div class="demo2">animation</div>
    </body>
</html>

原文地址:https://www.cnblogs.com/liangtao999/p/11802466.html

时间: 2024-08-25 12:18:12

CSS3 animation动画与transition过渡比较的相关文章

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,

HTML5+CSS3 animation/keyframe/transform/transition/2D translate/3D translate 学习总结

<h1>HTML5+CSS3 animation/keyframe/transform/transition/2D translate/3D translate 学习总结</h1> <h1>HTML5,animation,keyframe,transform,transition,2D translate,3D translate,CSS3</h1> CSS3 教程 CSS 用于控制网页的样式和布局. CSS3 是最新的 CSS 标准. 本教程向您讲解 CS

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 和

css3 animation动画技巧

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

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动画

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

CSS3 animation的steps方式过渡

animation默认以ease方式过渡,它会在每个关键帧之间插入补间动画,所以动画效果 是连贯性的.除了ease,linear.cubic-bezier之类的过渡函数都会为其插入补间. 但有些效果不需要补间,只需要关键帧之间的跳跃,这时应该使用steps过渡方式. 比如GIF动图不支持程序对播放的控制,也不支持Alpha通道.但如果我们用一个 PNG图片,把所有帧都放在一起,通过CSS3的animation控制background-position 来播放就可以做到这些. <style> @

CSS3 Animation动画

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