您的位置:首页 > 资讯 > 软件教程
animate css(CSS animation 与 CSS transition 有何区别)
发表时间:2023-09-17 | 来源:本站整理
分享到:
  Animate CSS是一个用于创建动画效果的CSS库。它可以让元素的属性值在一定的时间内发生变化,从而实现动画效果,就像是Flash中的补间动画一样。不同于传统的关键帧动画

   Animate CSS是一个用于创建动画效果的CSS库。它可以让元素的属性值在一定的时间内发生变化,从而实现动画效果,就像是Flash中的补间动画一样。不同于传统的关键帧动画,Animate CSS使用transition和animation这两个属性来控制元素的变化。

  首先,我们来看transition这个属性。它非常简单,容易上手,适合用于制作简单的网页特效。比如,我们有一个元素的初始样式是left: 100px; top: 100px;,然后我们给它添加一个.animate的类,其中有一个transition属性:transition: left 0.5s ease-out; left: 500px; top: 500px; 这个属性的意思是,当left属性发生变化时,执行动画效果。transition只会基于left属性的变化来进行动画,其他的属性不会被包括进去。当我们把.animate类添加到这个元素上或者用.animate替换原来的类时,元素的属性就会发生变化,触发webkit-transition。动画的起始值是指定属性变化前的值,结束值是变化后的属性值,从而执行动画效果。而且,如果在动画进行中,属性值再次发生变化,当前的动画会被中断,然后以中断时的属性值作为新的起始值,计算新的动画效果。

  接下来,我们来看animation这个属性。它是transition属性的扩展版本,在官方的介绍中还包含了一个重要的东西,就是keyframes。如果你有使用过Flash做动画的经验,你就会知道Flash中有两个重要的概念:时间轴和关键帧。而CSS的keyframes则将这两个概念合二为一。我们来看一个简单的keyframes示例:@keyframes wobble {0% {left: 100px;} 30% {left: 300px;} 100% {left: 500px;}} 然后我们给一个元素添加.animate类,并且设置如下属性:left: 100px; -webkit-animation: wobble 0.5s ease-out; -webkit-animation-fill-mode: backwards; 这段代码展示了一个名为wobble的keyframes,它定义了在动画过程中不同时间点的属性值。使用animation属性根据这个keyframes来计算元素动画中的属性变化。与transition不同的是,keyframes提供了更多的控制,特别是时间轴的控制。这使得CSS animation更加强大,可以直接实现一些原本只能通过Flash实现的动画效果。而且只需要几行代码,就能做出相当复杂的动画效果。正因如此,基于CSS的动画工具也应运而生,用来替代Flash动画部分的实现。想要了解更多关于动画工具的信息,可以参考Webstandards-based Animation Tools。

  除此之外,animation属性还有一个非常重要的属性:animation-fill-mode。它可以指定在动画完成后是以from/0%指定的样式还是以to/100%指定的样式作为最终样式。这个属性非常方便,可以保证动画的结尾样式的连贯性,让整体动画效果更加流畅。