溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

HTML與CSS中的動(dòng)畫(huà)模塊是什么

發(fā)布時(shí)間:2020-07-15 15:10:31 來(lái)源:億速云 閱讀:142 作者:Leah 欄目:web開(kāi)發(fā)

這篇文章運(yùn)用簡(jiǎn)單易懂的例子給大家介紹HTML與CSS中的動(dòng)畫(huà)模塊是什么,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

一. 動(dòng)畫(huà)模塊

1.過(guò)渡和動(dòng)畫(huà)之間的異同

1.1不同點(diǎn)

過(guò)渡必須人為的觸發(fā)才會(huì)執(zhí)行動(dòng)畫(huà)
動(dòng)畫(huà)不需要人為的觸發(fā)就可以執(zhí)行動(dòng)畫(huà)

1.2相同點(diǎn)

過(guò)渡和動(dòng)畫(huà)都是用來(lái)給元素添加動(dòng)畫(huà)的
過(guò)渡和動(dòng)畫(huà)都是系統(tǒng)新增的一些屬性
過(guò)渡和動(dòng)畫(huà)都需要滿(mǎn)足三要素才會(huì)有動(dòng)畫(huà)效果

2 動(dòng)畫(huà)三要素

2.1告訴系統(tǒng)需要執(zhí)行哪個(gè)動(dòng)畫(huà)
2.2告訴系統(tǒng)我們需要自己創(chuàng)建一個(gè)名稱(chēng)叫做lnj的動(dòng)畫(huà)
2.3告訴系統(tǒng)動(dòng)畫(huà)持續(xù)的時(shí)長(zhǎng)

p{             width: 100px;    
 height: 50px;  
 background-color: red;       
 /*1.告訴系統(tǒng)需要執(zhí)行哪個(gè)動(dòng)畫(huà)*/   
 animation-name: lnj;       
 /*3.告訴系統(tǒng)動(dòng)畫(huà)持續(xù)的時(shí)長(zhǎng)*/             
  animation-duration: 3s;       }        
 /*2.告訴系統(tǒng)我們需要自己創(chuàng)建一個(gè)名稱(chēng)叫做lnj的動(dòng)畫(huà)*/  
 @keyframes lnj {            
  from{                 margin-left: 0;           }             
  to{                 margin-left: 500px; }         
  }

二.動(dòng)畫(huà)模塊 - 其它屬性 (上)

  p {         
  width: 100px;         
  height: 50px;         
  background-color: red;         
  animation-name: sport;         
  animation-duration: 2s;         
  /*告訴系統(tǒng)多少秒之后開(kāi)始執(zhí)行動(dòng)畫(huà)*/         
  /*animation-delay: 2s;*/         
  /*告訴系統(tǒng)動(dòng)畫(huà)執(zhí)行的速度*/         
  animation-timing-function: linear;         
  /*告訴系統(tǒng)動(dòng)畫(huà)需要執(zhí)行幾次*/         
  animation-iteration-count: 3;  
  //infinite : 無(wú)限的         
  /*告訴系統(tǒng)是否需要執(zhí)行往返動(dòng)畫(huà)         
  取值:         normal, 默認(rèn)的取值, 執(zhí)行完一次之后回到起點(diǎn)繼續(xù)執(zhí)行下一次         
  alternate, 往返動(dòng)畫(huà), 執(zhí)行完一次之后往回執(zhí)行下一次         
  */         animation-direction: alternate;     }     
  @keyframes sport {         
  from{             margin-left: 0;         }         
  to{             margin-left: 500px;         }     }     
  p:hover{         
  /*         告訴系統(tǒng)當(dāng)前動(dòng)畫(huà)是否需要暫停         
  取值:         running: 執(zhí)行動(dòng)畫(huà),默認(rèn)取值         
  paused: 暫停動(dòng)畫(huà), 當(dāng)動(dòng)畫(huà)執(zhí)行時(shí),鼠標(biāo)hover到p上方時(shí),動(dòng)畫(huà)停止,鼠標(biāo)移開(kāi),則繼續(xù)動(dòng)畫(huà);         
  */         
  animation-play-state: paused;     }

三.動(dòng)畫(huà)模塊 - 其它屬性 (下)

      .box2{             
      width: 200px;             
      height: 200px;             
      background-color: blue;             
      margin: 100px auto;             
      animation-name: myRotate;             
      animation-duration: 5s;             
      animation-delay: 2s;             
      /*             通過(guò)我們的觀察, 動(dòng)畫(huà)是有一定的狀態(tài)的            
       1.等待狀態(tài)             2.執(zhí)行狀態(tài)             3.結(jié)束狀態(tài)             */
      /*             animation-fill-mode作用:             指定動(dòng)畫(huà)等待狀態(tài)和結(jié)束狀態(tài)的樣式 
                  取值:             none: 不做任何改變             
                  forwards: 讓元素結(jié)束狀態(tài)保持動(dòng)畫(huà)最后一幀的樣式; 
                  //向前的            
       backwards: 讓元素等待狀態(tài)的時(shí)候顯示動(dòng)畫(huà)第一幀的樣式; 
                   // 向后的             
                   both: 讓元素等待狀態(tài)顯示動(dòng)畫(huà)第一幀的樣式, 讓元素結(jié)束狀態(tài)保持動(dòng)畫(huà)最后一幀的樣式
      */             
      /*animation-fill-mode: backwards;*/             
      /*animation-fill-mode: forwards;*/             
      animation-fill-mode: both;         }         
      @keyframes myRotate {            
       0%{                 transform: rotate(10deg);             }             
       50%{                 transform: rotate(50deg);             }             
       100%{                 transform: rotate(70deg);             }        
        } 
      animation-fill-mode

四. 動(dòng)畫(huà)模塊-連寫(xiě)

1.動(dòng)畫(huà)模塊連寫(xiě)格式
animation:動(dòng)畫(huà)名稱(chēng) 動(dòng)畫(huà)時(shí)長(zhǎng) 動(dòng)畫(huà)運(yùn)動(dòng)速度 延遲時(shí)間 執(zhí)行次數(shù) 往返動(dòng)畫(huà);

2.動(dòng)畫(huà)模塊連寫(xiě)格式的簡(jiǎn)寫(xiě)
animation:動(dòng)畫(huà)名稱(chēng) 動(dòng)畫(huà)時(shí)長(zhǎng);

五. 云層效果

<html lang="en"> <head>     
<meta charset="UTF-8">     <title>104-動(dòng)畫(huà)模塊-云層效果</title>     <style>         
*{             margin: 0;             padding: 0;         }         
ul{             height: 400px;             background-color: skyblue;             
margin-top: 100px;             animation: change 5s linear 0s infinite alternate;            
 position: relative;             overflow: hidden; //讓屏幕下方的滾動(dòng)條隱藏掉         }      
    ul li{             list-style: none;             width: 400%;  
    //設(shè)置li的寬度為屏幕的四倍,移動(dòng)最多的為屏幕寬度的三倍,為保證屏幕內(nèi)一直有云朵,故多設(shè)置一個(gè)屏幕的寬度的云朵
        height: 100%;             position: absolute; 
        // 設(shè)置子絕父相后,三個(gè)li會(huì)重疊到一起             
        left: 0;             top: 0;         }         ul li:nth-child(1){             
        background-image: url("images/cloud_one.png");             
        animation: one 30s linear 0s infinite alternate;         }         
        ul li:nth-child(2){             background-image: url("images/cloud_two.png");             
        animation: two 30s linear 0s infinite alternate;         }         
        ul li:nth-child(3){             background-image: url("images/cloud_three.png");             
        animation: three 30s linear 0s infinite alternate;         }         
        @keyframes change {             
        from{                 background-color: skyblue;             }             
        to{                 background-color: black;             }         }         
        @keyframes one {            
         from{                 margin-left: 0;             }             
         to{                 margin-left: -100%;  
         //如果先往右移動(dòng),又出現(xiàn)屏幕上有一節(jié)沒(méi)云朵的情況,故先往左移動(dòng);             
         }         }         
         @keyframes two {            
          from{                 margin-left: 0;             }             
          to{                 margin-left: -200%;
          //由于動(dòng)畫(huà)的時(shí)間都一樣,但是運(yùn)動(dòng)的距離不一樣,又由于都是線(xiàn)性速度,所以就會(huì)出現(xiàn)有點(diǎn)運(yùn)動(dòng)快,有的運(yùn)動(dòng)慢!
                       }         }         
         @keyframes three {             from{                 margin-left: 0;             }             
         to{                 margin-left: -300%;             }         }     
         </style> </head> <body> <ul>     <li></li>     <li></li>     <li></li> </ul> </body> </html>

六. 無(wú)限滾動(dòng)

<html lang="en"> <head>     <meta charset="UTF-8">     <title>105-動(dòng)畫(huà)模塊-無(wú)限滾動(dòng)</title>     
<style>         *{             margin: 0;             padding: 0;         }        
 p{             width: 600px;             height: 188px;             border: 1px solid #000;           
   margin: 100px auto;             overflow: hidden;         }         ul{             width: 2000px; 
   //這個(gè)無(wú)限滾動(dòng)原理就是ul做動(dòng)畫(huà)             
   height: 188px;             background-color: black;  
   //背景顏色黑色,當(dāng)li的透明度為半透明時(shí),li就會(huì)有黑色蒙版效果             
   animation: move 10s linear 0s infinite normal;                      
   //name 時(shí)間 速度 延時(shí) 無(wú)限重復(fù) 是否往返(normal代表不往返)
            }         
            ul li{             float: left;             list-style: none;             width: 300px;
                         height: 188px;             background-color: red;             
                         border: 1px solid #000;             box-sizing: border-box;         }
                                  ul:hover{             
                                  /*動(dòng)畫(huà)添加給誰(shuí), 就讓誰(shuí)停止*/ 
                                              animation-play-state: paused;         } 
                                                      ul:hover li{             opacity: 0.5; 
                                                      //當(dāng)li的透明度為0.5時(shí),就會(huì)看到父元素的背景顏色(黑色),就會(huì)有蒙版效果
                                                               }         
                                                               ul li:hover{             opacity: 1; 
                                                               //透明度為1,不透明,看不到父元素的背景色,故沒(méi)有蒙版效果
                                  }         @keyframes move {             
                                  from{                 margin-left: 0;             }             
                                  to{                 margin-left: -1200px;
                                  //只需要移除屏幕4個(gè)li的寬度就可.   屏幕上就會(huì)顯示第5.6兩個(gè)li,這時(shí),原本的動(dòng)畫(huà)就會(huì)恢復(fù)的原來(lái)的位置接著動(dòng)畫(huà),實(shí)現(xiàn)了無(wú)線(xiàn)滾動(dòng)效果             
                       }         }     </style> </head> <body> <p>     <ul>         
                       <li>![](images/banner1.png)</li>         <li>![](images/banner2.jpg)</li>        
                       <li>![](images/banner3.jpg)</li>         <li>![](images/banner4.jpg)</li>         
                       //把前兩個(gè)li加在后面,起到過(guò)度效果;動(dòng)畫(huà)不會(huì)顯得太生硬.         
                       <li>![](images/banner1.png)</li>         <li>![](images/banner2.jpg)</li>     
                       </ul> </p> </body> </html>

關(guān)于HTML與CSS中的動(dòng)畫(huà)模塊是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI