好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

过渡动画和帧动画的区别

1. 开场白

上一章我们已经了解了Css Sprite需要的基本CSS语法,那么这一章节我们将带领大家体验一下动画的语法,以及不同动画种类之 间的 区别。

动画通常分为两种形式:一种是过渡动画、另一种是帧动画。

2. 过渡动画

之前我们曾经说过,Css Sprite在帧动画这一领域独领风骚,那么接下来我们就来分析一下动画领域里面常见的两种形式:过渡动画与帧动画之 间的 区别。

首先我们来看看目前各类网站中最常见的一种动画: 过渡动画

  <!DOCTYPE html> 
   < html   lang   =  " en "   >  
   < head  >  
     <  Meta    charset   =  " UTF-8 "   >  
     < title  >  Animate-过渡动画   </ title  >  
     < style  >   
     /* 清除 默 认样式 */ 
     *   {   padding  :   ;   margin  :   ;   } 
    
     /* 这段 代码 是为了居中 显示 ,不是重点,看不懂的话可以无视 */ 
     body   { 
         height  :  vh ; 
          dis play  :  flex ; 
         align-items  :  center ; 
         justify-content  :  center ; 
     } 
    
      .animate    { 
       width  :  px ; 
       height  :  px ; 
      
       /* 使用预先定义好的动画,过渡动画 */ 
       animation  :  change-color s linear infinite alternate ; 
     } 
    
     /* 定义动画 */ 
      @keyframes  change-color   { 
       from   {   background  :  yellow  } 
       to   {   background  :  green  } 
     } 
      </ style  >  
   </ head  >  
   < body  >  
     < div   class   =  " animate "   >     </ div  >  
   </ body  >  
   </ html  >

运行结果:

1.jpg

可以看到盒子的颜色是从 黄色 慢慢过渡到 绿色 ,所以叫过渡动画,因为其有 一个 过渡的 效果 。

3. 帧动画

再来看看帧动画是什么样的 效果 :

  <!DOCTYPE html> 
   < html   lang   =  " en "   >  
   < head  >  
     <  Meta    charset   =  " UTF-8 "   >  
     < title  >  Animate-帧动画   </ title  >  
     < style  >   
     /* 清除 默 认样式 */ 
     *   {   padding  :   ;   margin  :   ;   } 
    
     /* 这段 代码 是为了居中 显示 ,不是重点,看不懂的话可以无视 */ 
     body   { 
         height  :  vh ; 
          dis play  :  flex ; 
         align-items  :  center ; 
         justify-content  :  center ; 
     } 
    
      .animate    { 
       width  :  px ; 
       height  :  px ; 

	   /* 使用预先定义好的动画,帧动画 */ 
       animation  :  change-color s  steps  (  )  infinite alternate ; 
     } 

	 /* 定义动画 */ 
      @keyframes  change-color   { 
       from   {   background  :  yellow  } 
       to   {   background  :  green  } 
     } 
      </ style  >  
   </ head  >  
   < body  >  
     < div   class   =  " animate "   >     </ div  >  
   </ body  >  
   </ html  >

运行结果:

1.jpg

可以看到是一帧帧播放的,帧数低的时候有种卡卡的感觉,好像一下一下的分步骤从黄色变成绿色的。那我们把帧数提高一下不就看不到一卡一卡的感觉了吗?来试试看:

  <!DOCTYPE html> 
   < html   lang   =  " en "   >  
   < head  >  
     <  Meta    charset   =  " UTF-8 "   >  
     < title  >  Animate   </ title  >  
     < style  >   
     /* 清除 默 认样式 */ 
     *   {   padding  :   ;   margin  :   ;   } 
    
     /* 这段 代码 是为了居中 显示 ,不是重点,看不懂的话可以无视 */ 
     body   { 
         height  :  vh ; 
          dis play  :  flex ; 
         align-items  :  center ; 
         justify-content  :  center ; 
     } 
    
      .animate    { 
       width  :  px ; 
       height  :  px ; 
      
       /* 使用预先定义好的动画 */ 
       animation  :  change-color s  steps  (  )  infinite alternate ; 
     } 
    
     /* 定义动画 */ 
      @keyframes  change-color   { 
       from   {   background  :  yellow  } 
       to   {   background  :  green  } 
     } 
      </ style  >  
   </ head  >  
   < body  >  
     < div   class   =  " animate "   >     </ div  >  
   </ body  >  
   </ html  >

运行结果:

1.jpg

虽然 效果 一样了,但是怎么感觉更麻烦了呢?还要自己去指定帧数,而过渡动画都是全 自动 的,帧动画是不是不如过渡动画呢?实际上并不是这样的,帧动画有着自己的适用场景。接下来我们就来探讨一下何时适合帧动画,何时又适合过渡动画。

4. 小结

乍一看好像过渡动画更胜一筹,但实际上他们两个各自有各自的适用场景。

下一章我们就来看看什么样的场景适合过渡动画。

查看更多关于过渡动画和帧动画的区别的详细内容...

  阅读:75次

上一篇

下一篇

第1节:什么是Css Sprite?    第2节:Css Sprite和雪碧之间有什么关系?    第3节:为什么要使用Css Sprite?    第4节:Css Sprite过时了吗?    第5节:JPG 格式图片    第6节:PNG 格式图片    第7节:SVG 格式图片    第8节:Css Sprite:矩形图    第9节:Css Sprite:条形图    第10节:背景图片    第11节:背景图定位    第12节:动态变更背景图位置    第13节:Css Sprite尺寸不吻合时怎么办?    第14节:过渡动画和帧动画的区别    第15节:适合过渡动画的场景    第16节:适合用帧动画的场景    第17节:帧动画和过渡动画的优缺点    第18节:CSS 动画的定义    第19节:CSS 动画的调用    第20节:帧动画函数steps()的解析    第21节:动画实例项目结构    第22节:定义动画    第23节:调用动画    第24节:连接两个Css Sprite的动画