HTML5CSS3特效-上下跳動的小球-遁地龍卷風


(-1)寫在前面

   我用的是chrome49,這個idea是我在stackoverflow上回答問題時看到了,多謝這位同行,加深了我對很多技術點的理解,最近剛到北京,忙碌了一兩天,在后續的日子里,會被安排面試,學習計划只能按工作流走了,做完這個要看一個特別酷的效果,好激動!

(0)效果演示

 

(1)實現方案

動畫效果都是用animation做的

(2)知識點詳解

a. border-radius:40px;  

當div的長高都是80px的時候,div是一個圓形,其實長高都是60px的時候也是圓型,同理都是40、30也是圓型,當然案例中沒有使用這種方式。具體實現在代碼中說明

b. position:absolute;

當div使用此屬性時,margin:0 auto是無效的,小球使用了這個屬性,他的水平居中的實現方式在代碼中說明

c. animation:down 1.5s infinite alternate;

I.1.5s 是動畫的持續時間,因為延遲時間出現在持續時間的后面,所以只出現一個帶s的參數是持續時間。

II.這里的alternate是指反向播放動畫,比如說一個動畫的幀如下

@keyframes down

{

      from

{

  …

}

      95%

      {

           …

      }

      to

      {

           …

}

     

}

正向播放是from-95-to,反向播放to-95%-from

d. @keyframes down{95%{…}}

如果對應animate:down 1.5s;

動畫在執行到95%就到達了最終狀態,剩余5%的時間會用在回到初始狀態。

(3)代碼加解釋

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset=utf-8>

<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">

<title>為了生活</title>

<style type="text/css">

*

{

      margin:0;

      padding:0;

}

#lol

{

      margin:0px auto;

      top:100px;

      width:80px;

      height:80px;

      background-color:red;

      border-radius:40px;            

      position:absolute;

      left:160px;

      animation:down 1.5s infinite alternate;

}   

@keyframes down

{

      95%

      {

           width:15px;

           height:15px;

           border-radius:7.5px; /*保證div始終是個圓形*/

           top:300px;

           left:192.5px;/*保證小球始終水平居中*/

           background:blue;

      }

}

#frame

{

      width:400px;

      height:315px;

      margin:100px auto;

      border:1px red solid;

      position:relative;

}

#head

{

      width:400px;

      height:100px;

      text-align:center;

      font-size:40px;

      font-weight:bold;

      line-height:100px;

      background-image:-webkit-linear-gradient(90deg, #be1e1e, #be9b1e, #1ebe21, #1ebeb5, #1e24be, #ba1ebe, #be1e1e);

/*前面文章有提到*/

      -webkit-background-clip: text;/*剪切背景顏色,只在文字上顯示*/

      -webkit-text-fill-color:transparent;/*文字填充為透明色*/

      background-size:100% 700%;    

/*前面文章有提到*/

      animation:bc 6s infinite;

}

@keyframes bc

{

      to

      {

           background-position:100% 100%;

/*前面文章有提到*/

      }

}

</style>    

<script type="text/javascript">

</script>

</head

<body>

      <div id="frame">

           <div id="head">Animatiom</div>

           <div id="lol"></div>

      </div>

</body>              

</html>                 

                        

                         


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM