好得很程序员自学网

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

适合用帧动画的场景

有时候想要的动画并不是缩小、放大或者变个颜色之类的这么简单,比如我们需要 一个 复杂的形变 加上 复杂的运动轨迹,此时过渡动画就有些相形见绌了。虽然 Canvas 或 SVG 能够实现复杂逻辑的动画 效果 ,但是毕竟不是人人都会这种技术。而且有时候开发时间有限,没有时间用 代码 来绘制 一个 炫酷动画,所以这个时候帧动画,配上Css Sprite就是 最完 美的选择。

我们用一张条形Css Sprite来试一下:

image.png

2. 过渡动画

首先使用过渡动画看看会是什么 效果 :

  <!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 ; 

       /* 指定背景图 */ 
       background  :   url(http:https://www.jb51.cc/res/2021/11-02/11/5035ad12112b58705095585b3e794444.jpg)  ; 
      
       /* 使用预先定义好的动画 */ 
       animation  :  change-position s linear both ; 
     } 

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

我们需要的是一张 图片 一张 图片 的去 显示 ,也就是一帧代表一张 图片 ,我们换成帧动画再来试一下:

  <!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 ; 

       /* 指定背景图 */ 
       background  :   url(http:https://www.jb51.cc/res/2021/11-02/11/5035ad12112b58705095585b3e794444.jpg)  ; 
      
       /* 使用预先定义好的动画 */ 
       animation  :  change-position s  steps  (  )  infinite ; 
     } 

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

查看更多关于适合用帧动画的场景的详细内容...

  阅读:97次

上一篇

下一篇

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