原文地址:[http://webdesignersdesk.com/2010/05/create-ajax-loading-animation-with-css3/](http://webdesignersdesk.com/2010/05/create-ajax-loading-animation-with-css3/)
譯者:蔣宇捷

?
?通常前端工程師采用gif動畫圖片來表現Ajax的加載。但是現在css3已經引入了動畫屬性,我們可以在不采用gif動畫圖片的情況下,采用css3達到同樣的Ajax加載動畫效果。那么讓我們現在開始來實現想要的效果。
?
**重要提示:只支持**Webkit**內核的瀏覽器(**Safari**和**Chrome**)**
**示例**



**HTML**
?在這里我們只展示demo里第一個Ajax載入示例的代碼。首先我們需要一個名為“loading”的容器,以放置所有的動畫元素。然后我們需要為每一列定義一個單獨的div,并且統一定義一個class屬性。
**用**CSS3**設計動畫**
?
下面所有的代碼都帶有注釋。
~~~
*#loading{ margin-top:30px; float:left; width:95px; height:32px; background-color:#779ec2; margin-left:30px; /* CSS3圓角邊框 */ -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px;}.coloumns{ background-color:#fff; border:1px solid #fff; float:left; height:30px; margin-left:5px; width:10px; /* 在這兒我們定義一個動畫名,隨后我們將會實現它 */ -webkit-animation-name: animation; /* 動畫循環一次的總時間 */ -webkit-animation-duration: 3s; /* 動畫的循環次數,我們設置為無窮大 */ -webkit-animation-iteration-count: infinite; -webkit-animation-direction: linear; /* 最初所有列的透明度都為0 */ opacity:0; /* 開始時將它縮放為0.8 */ -webkit-transform:scale(0.8); }#coloumn1{ /* 第一列動畫延遲0.3秒 */ -webkit-animation-delay: .3s; }#coloumn2{ /* 第二列動畫延遲0.4秒 */ -webkit-animation-delay: .4s;}#coloumn3{ /* 第三列動畫延遲0.5秒*/ -webkit-animation-delay: .5s;}#coloumn4{ /* 第四列動畫延遲0.6秒*/ -webkit-animation-delay: .6s; }#coloumn5{ /* 第四列動畫延遲0.7秒*/ -webkit-animation-delay: .7s;}#coloumn6{ /* 第四列動畫延遲0.8秒*/ -webkit-animation-delay: .8s;}/* 之前我們曾經定義過動畫的名稱,我們在這兒設置動畫的屬性 */@-webkit-keyframes animation{ /* 在動畫開始時每一列的透明度都是0 */ 0%{opacity:0;} /* 在動畫中間時每一列的透明度都是1 */ 50%{opacity:1;} /*在動畫結束時每一列的透明度都還原到0 */ 100%{opacity:0;}}?*
~~~
**加載動畫**2**和**3**的**CSS**代碼**
~~~
*#loading1{ margin-top:30px; float:left; margin-left:30px;}.coloumns1{ background-color:#39F; border:1px solid #00F; float:left; height:30px; margin-left:5px; width:8px; -webkit-animation-name: animation1; -webkit-animation-duration: 2s; -webkit-animation-iteration-count: infinite; -webkit-animation-direction: linear; opacity:0.2; -webkit-transform:scale(0.6); }#coloumn11{ -webkit-animation-delay: .3s; }#coloumn22{ -webkit-animation-delay: .4s;}#coloumn33{ -webkit-animation-delay: .5s;}#coloumn44{ -webkit-animation-delay: .6s; }#coloumn55{ -webkit-animation-delay: .7s;}#coloumn66{ -webkit-animation-delay: .8s;}@-webkit-keyframes animation1{ 0%{-webkit-transform: scale(.9);opacity:1;} 100%{-webkit-transform: scale(.2);opacity:0.1;}}#loading2{ margin-top:30px; float:left; margin-left:30px;}.coloumns2{ -webkit-border-radius: 10px;-moz-border-radius: 10px;border-radius: 10px; background-color:#39F; float:left; height:20px; margin-left:5px; width:20px; -webkit-animation-name: animation2; -webkit-animation-duration: 2s; -webkit-animation-iteration-count: infinite; -webkit-animation-direction: linear; opacity:0; }#coloumn111{ -webkit-animation-delay: .1s; }#coloumn222{ -webkit-animation-delay: .3s;}#coloumn333{ -webkit-animation-delay: .5s;}#coloumn444{ -webkit-animation-delay: .7s; }@-webkit-keyframes animation2{ 0%{opacity:0;} 50%{opacity:1;} 100%{opacity:0;}}?*
~~~
**譯者注:**
?現在我們有了四種實現HTML動畫的方式:
1、GIF動畫圖片,優點方便,缺點是256色,背景不能完全透明,效果較差。
2、CSS3控制,缺點是只有在支持CSS3的瀏覽器上有效果、實現較復雜,優點是效果好,效率高。
3、Javascript實現,效果和CSS實現類似,效率不如原生CSS,但是可以跨瀏覽器支持。
4、HTML5 Canvas,實現較復雜,能實現更高級的效果。
- 前言
- AutoPager的簡單實現
- 利用CSS3特性巧妙實現漂亮的DIV箭頭
- IE9在Win7下任務欄新特性簡介
- 瀏覽器九宮格的簡單實現
- Raphael js庫簡介
- 使用CSS3構建Ajax加載動畫
- 用CSS3創建動畫價格表
- 用CSS3實現瀏覽器的縮放功能
- 用純CSS3實現QQ LOGO
- 用CSS3創建旋轉載入器
- 使用Javascript開發移動應用程序
- 用HTML5創建超酷圖像灰度漸變效果
- 使用CSS3創建文字顏色漸變(CSS3 Text Gradient)
- 僅用CSS創建立體旋轉幻燈片
- 如何創建跨瀏覽器的HTML5表單
- 用CSS3實現動畫進度條
- HTML5 Guitar Tab Player
- 奇妙的HTML5 Canvas動畫實例
- 談HTML5和CSS3的國際化支持
- 實現跨瀏覽器的HTML5占位符
- 前端開發必備工具:WhatFont Bookmarklet-方便的查詢網頁上的字體
- 使用HTML5和CSS3來創建幻燈片
- HTML5之美
- 如何使用HTML5創建在線精美簡歷
- 以小見大、由淺入深-談如何面試Javascript工程師
- 快速入門:HTML5強大的Details元素
- 用CSS3實現圖像風格
- HTML5視頻字幕與WebVTT
- 用純CSS3實現Path華麗動畫
- 用3個步驟實現響應式網頁設計
- 遇見CSS3濾鏡
- 關于CSS3濾鏡的碎念
- 用純CSS3繪制萌系漫畫人物動態頭像
- CSS3新的鼠標樣式介紹
- 用HTML5獻上愛的3D玫瑰
- 對HTML5 Device API相關規范的解惑
- 如何使用HTML5實現拍照上傳應用
- 2012第一季度國外HTML5移動開發趨勢
- HTML5新特性:范圍樣式
- 百度開發者大會-《用HTML5新特性開發移動App》PPT分享
- Chrome 19對于HTML5最新支持的動態:電池狀態API,全屏API,震動API,語音API
- 遇見Javascript類型數組(Typed Array)
- 用HTML5 Audio API開發游戲音樂
- 用HTML5實現人臉識別
- 用Javascript實現人臉美容
- Chrome 20對于HTML5最新支持的動態:顏色輸入,網絡信息API,CSS著色器
- 用HTML5實現手機搖一搖的功能
- 用HTML5實現iPad應用無限平滑滾動
- 用非響應式設計構建跨端Web App
- 了解SVG
- HTML5圖像適配介紹
- HTML5安全:內容安全策略(CSP)簡介
- HTML5安全:CORS(跨域資源共享)簡介
- 用CSS3 Region和3D變換實現書籍翻頁效果
- 談談移動App的思維誤區
- Chrome新特性:文件夾拖拽支持
- 《關注HTML5安全》
- HTML5安全風險詳析之一:CORS攻擊
- HTML5安全風險詳析之二:Web Storage攻擊
- HTML5圖像適配最新進展:響應式圖片規范草案
- HTML5移動Web App相關標準狀態及路線圖
- HTML5安全風險詳析之三:WebSQL攻擊
- Chrome引入WebRTC支持視頻聊天App
- HTML5安全風險詳析之四:Web Worker攻擊
- HTML5安全風險詳析之五:劫持攻擊
- HTML5安全風險詳析之六:API攻擊
- HTML5安全攻防詳析之七:新標簽攻擊
- 在iOS Safari中播放離線音頻
- 使用WebRTC實現遠程屏幕共享
- Firefox、Android、iOS遇見WebRTC
- HTML5光線傳感器簡介
- HTML5安全攻防詳析之八:Web Socket攻擊
- HTML5安全攻防詳析之完結篇:HTML5對安全的改進
- 激動人心!在網頁上通過語音輸入文字 - HTML5 Web Speech API介紹
- Web滾動性能優化實戰
- 用CSS3設計響應式導航菜單
- 用HTML5構建高性能視差網站
- 漫談@supports與CSS3條件規則
- HTML5下載屬性簡介
- 如何開發優秀的HTML5游戲?-迪斯尼《尋找奧茲之路》游戲技術詳解(一)
- 如何開發優秀的HTML5游戲?-迪斯尼《尋找奧茲之路》游戲技術詳解(二)
- 趨勢:Chrome為打包應用提供強大新特性
- 從HTML5移動應用現狀談發展趨勢
- 基于HTML5的Web跨設備超聲波通信方案