CSS3-loading動畫

上次分享了四個CSS3的加載動畫,今天繼續(標題接上一次)。html

在線demo:http://liyunpei.xyz/loading.html   (持續更新)post

 

請注意:代碼中的關鍵幀動畫有的用的linear曲線,而有的用的是ease曲線。前者是勻速執行,整個動畫以固定的速度執行;後者有加速減速階段,在動畫開始時加速,在動畫將要結束時減速(好比我在50%的地方設置了一個動畫,那麼在快要到達50%的時候,動畫開始減速,在超過50%的時候動畫開始加速,表如今頁面上會有一個短暫的停留效果,效果7、效果八最爲明顯)動畫

5、效果五url

 

小球爬樓梯的效果,第一看到這個效果,本覺得會有點兒複雜,結果寫出來以後以爲也沒有那麼難。spa

首先將樓梯定位至右上角,執行從右上至左下的運動動畫,併爲每個樓梯設置animation-delay的值(我這裏用了三個樓梯,總時長1.8s,animation-delay值分別爲0s,-0.6s,-12s)3d

複製代碼
{animation: step_mv 1.8s linear infinite;}
@keyframes step_mv { 0%{ right: 0; top: 0; opacity: 0.6; } 50%{ opacity: 1; } 100%{ right: 100%; top: 100%; opacity: 0.6; } }
複製代碼

其次,肯定小球與樓梯的接觸點,小球將以此接觸點做爲最低基準,同時,改變小球在上升、降低過程當中的寬高來是小球跳動更真實。小球動畫的運動時間恰好是樓梯動畫的延遲時間,這樣,才能保證小球能夠接觸到每個樓梯。code

複製代碼
{animation: jump .6s 0s ease infinite,jump_S .6s 0s ease infinite;}
@keyframes jump {
      50%{
        top: 60%;
      }
    }
    @keyframes jump_S {
      5%{
        height: 25px; //降低過程
        width: 15px;
      }
      54%{
        height: 20px;//到達底部
        width: 20px;
      }
      55%{
        height: 25px;//上升過程
        width: 15px;
      }
      98%{
        height: 20px;//到達頂點
        width: 20px;
      }
    }
複製代碼

6、效果六orm

 

這個效果就比較簡單了。htm

一個矩形div,設置邊框、圓角,將其中任意一個邊框顏色設置爲繼承(即border-left/bottom/top/right-color:transparent);blog

這樣,父元素沒有邊框顏色,這一邊的邊框也就無色,便造成了有缺口的圓,接下來只要設置旋轉動畫就OK了。(代碼就不貼出來了)

7、效果七

 

這個效果形狀的製做與上一個作法相同,只是此次多加了一個邊框,仍是旋轉,就很少說了,直接上關鍵幀動畫的代碼。

複製代碼
{animation: rotate_bors 2s ease infinite;}//大圓
{animation: rotate_bors 1s ease infinite;}//小圓
@keyframes rotate_bors {
      50%{
        transform: rotateZ(180deg);
      }
      100%{
        transform: rotateZ(360deg);
      }
    }
複製代碼

8、效果八

 

這個效果也很簡單,外部大圈怎麼作就很少說了,裏面的小圓,也只要改變大小就好了。

複製代碼
{animation: rotate_borw 1s linear infinite;}
@keyframes rotate_borw {
      50%{
        width: 15px;
        height: 15px;
      }
    }
複製代碼

9、效果九

 

將小球所有設置爲行內塊元素,給父元素text-align:center來使小球水平居中,經過設置行高,來使小球垂直居中。接下來經過關鍵幀動畫來改變小球的長寬、以及左右外邊距。

複製代碼
{animation: margin 1s linear infinite;}
    @keyframes margin {
      50%{
        margin:0 10px;
        width: 10px;
        height: 10px;
      }
    }
複製代碼

10、效果十

 

依然將小球設爲行內塊,只需水平居中便可,能夠設置外邊距來調整小球之間的距離,經過關鍵幀來設置小球的translateY的值。(每一個小球之間的延遲沒必要均分,差值能夠減少)

複製代碼
{animation: trans 1.2s ease infinite;}
@keyframes trans {
      50%{
        opacity: 1;
        transform: translateY(30px);
      }
      70%{
        opacity: 1;
        transform: translateY(30px);
      }
      100%{
        opacity: 0;
        transform: translateY(60px);
      }
    }
複製代碼

 

(未完待續)

相關文章
相關標籤/搜索