使用CSS3構建Ajax載入動畫

來源:互聯網
上載者:User
文章目錄

原文地址:http://webdesignersdesk.com/2010/05/create-ajax-loading-animation-with-css3/

譯者:蔣宇捷

 

 

 

  

    通常前端工程師採用gif動畫圖片來表現Ajax的載入。但是現在css3已經引入了動畫屬性,我們可以在不採用gif動畫圖片的情況下,採用css3達到同樣的Ajax載入動畫效果。那麼讓我們現在開始來實現想要的效果。

  

重要提示:只支援Webkit核心的瀏覽器(SafariChrome

樣本

HTML

    在這裡我們只展示demo裡第一個Ajax載入樣本的代碼。首先我們需要一個名為“loading”的容器,以放置所有的動畫元素。然後我們需要為每一列定義一個單獨的div,並且統一定義一個class屬性。

  

<div id='loading'><br /> <div id='coloumn1' class='coloumns'></div><br /> <div id='coloumn2' class='coloumns'></div><br /> <div id='coloumn3' class='coloumns'></div><br /> <div id='coloumn4' class='coloumns'></div><br /> <div id='coloumn5' class='coloumns'></div><br /> <div id='coloumn6' class='coloumns'></div><br /></div> 

  

CSS3設計動畫

  

下面所有的代碼都帶有注釋。

 

#loading{<br />margin-top:30px;<br />float:left;<br />width:95px;<br />height:32px;<br />background-color:#779ec2;<br />margin-left:30px;<br />/* CSS3圓角邊框 */<br />-webkit-border-radius: 5px;<br />-moz-border-radius: 5px;<br />border-radius: 5px;<br />}<br />.coloumns{<br />background-color:#fff;<br />border:1px solid #fff;<br />float:left;<br />height:30px;<br />margin-left:5px;<br />width:10px;<br />/* 在這兒我們定義一個動畫名,隨後我們將會實現它 */<br />-webkit-animation-name: animation;<br />/* 動畫迴圈一次的總時間 */<br /> -webkit-animation-duration: 3s;<br />/* 動畫的迴圈次數,我們設定為無窮大 */<br /> -webkit-animation-iteration-count: infinite;<br /> -webkit-animation-direction: linear;<br />/* 最初所有列的透明度都為0 */<br />opacity:0;<br />/* 開始時將它縮放為0.8 */<br />-webkit-transform:scale(0.8);<br />}<br />#coloumn1{<br />/* 第一列動畫延遲0.3秒 */<br /> -webkit-animation-delay: .3s;<br /> }<br />#coloumn2{<br />/* 第二列動畫延遲0.4秒 */<br /> -webkit-animation-delay: .4s;<br />}<br />#coloumn3{<br />/* 第三列動畫延遲0.5秒*/<br /> -webkit-animation-delay: .5s;<br />}<br />#coloumn4{<br />/* 第四列動畫延遲0.6秒*/<br /> -webkit-animation-delay: .6s;<br /> }<br />#coloumn5{<br />/* 第四列動畫延遲0.7秒*/<br /> -webkit-animation-delay: .7s;<br />}<br />#coloumn6{<br />/* 第四列動畫延遲0.8秒*/<br /> -webkit-animation-delay: .8s;<br />}<br />/* 之前我們曾經定義過動畫的名稱,我們在這兒設定動畫的屬性 */<br />@-webkit-keyframes animation{<br />/* 在動畫開始時每一列的透明度都是0 */<br />0%{opacity:0;}<br />/* 在動畫中間時每一列的透明度都是1 */<br />50%{opacity:1;}<br />/*在動畫結束時每一列的透明度都還原到0 */<br />100%{opacity:0;}<br />}<br /> 

 

載入動畫23CSS代碼

#loading1{<br />margin-top:30px;<br />float:left;<br />margin-left:30px;<br />}<br />.coloumns1{<br />background-color:#39F;<br />border:1px solid #00F;<br />float:left;<br />height:30px;<br />margin-left:5px;<br />width:8px;<br />-webkit-animation-name: animation1;<br /> -webkit-animation-duration: 2s;<br /> -webkit-animation-iteration-count: infinite;<br /> -webkit-animation-direction: linear;<br />opacity:0.2;<br />-webkit-transform:scale(0.6);<br />}<br />#coloumn11{<br /> -webkit-animation-delay: .3s;<br /> }<br />#coloumn22{<br /> -webkit-animation-delay: .4s;<br />}<br />#coloumn33{<br /> -webkit-animation-delay: .5s;<br />}<br />#coloumn44{<br /> -webkit-animation-delay: .6s;<br /> }<br />#coloumn55{<br /> -webkit-animation-delay: .7s;<br />}<br />#coloumn66{<br /> -webkit-animation-delay: .8s;<br />}<br />@-webkit-keyframes animation1{<br />0%{-webkit-transform: scale(.9);opacity:1;}<br />100%{-webkit-transform: scale(.2);opacity:0.1;}<br />}<br />#loading2{<br />margin-top:30px;<br />float:left;<br />margin-left:30px;<br />}<br />.coloumns2{<br />-webkit-border-radius: 10px;<br />-moz-border-radius: 10px;<br />border-radius: 10px;<br />background-color:#39F;<br />float:left;<br />height:20px;<br />margin-left:5px;<br />width:20px;<br />-webkit-animation-name: animation2;<br /> -webkit-animation-duration: 2s;<br /> -webkit-animation-iteration-count: infinite;<br /> -webkit-animation-direction: linear;<br />opacity:0;<br />}<br />#coloumn111{<br /> -webkit-animation-delay: .1s;<br /> }<br />#coloumn222{<br /> -webkit-animation-delay: .3s;<br />}<br />#coloumn333{<br /> -webkit-animation-delay: .5s;<br />}<br />#coloumn444{<br /> -webkit-animation-delay: .7s;<br /> }<br />@-webkit-keyframes animation2{<br />0%{opacity:0;}<br />50%{opacity:1;}<br />100%{opacity:0;}<br />}<br /> 

 

譯者註:

    現在我們有了四種實現HTML動畫的方式:

   1、GIF動畫圖片,優點方便,缺點是256色,背景不能完全透明,效果較差。

   2、CSS3控制,缺點是只有在支援CSS3的瀏覽器上有效果、實現較複雜,優點是效果好,效率高。

   3、Javascript實現,效果和CSS實作類別似,效率不如原生CSS,但是可以跨瀏覽器支援。

   4、HTML5 Canvas,實現較複雜,能實現更進階的效果。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.