加載動畫和進度條的真正目的是讓用戶了解任務的進度,有很多的基於JavaScript的動畫,但我決定切換到CSS3。 在本教程中,我決定制作動畫的進度條,使用純CSS:沒有flash,沒有圖像,沒有腳本。他能夠動態的加載變化此外,我專注於尋找最簡單的辦法做到這一點。這里的例子:
這些文章可能你也喜歡
前沿設計推薦-純CSS打造的非常流行的講話氣泡效果使用CSS3懸停效果打造不同的頁面版式
對於Web開發人員開發方便的CSS3技巧
25個強大的CSS代碼,據說這些是開發者經常遇到比較棘手的代碼
前端開發性能推薦-如何進行CSS代碼減肥
|
% |
HTML標記:
我們需要的是這兩個div,第一個div將代表主容器和圓角和陰影效果,第二個div的實際進度條。 我添加了一個輸入和一個按鈕控制和播放進度條。
<div id="prbar"> <div id="prpos"> </div> </div> <input id="moveTo" value="57" style="width:30px;" />% <button onclick="MoveTo();return false;">Move</button>
The CSS :
#prbar { margin:5px; width:500px; background-color:#dddddd; overflow:hidden; /* 邊框效果 */ border: 1px solid #bbbbbb; -moz-border-radius: 15px; border-radius: 15px; /* 為進度條增加陰影效果 */ -webkit-box-shadow: 0px 2px 4px #555555; -moz-box-shadow: 0px 2px 4px #555555; box-shadow: 0px 2px 4px #555555; } /* No rounded corners for Opera, because the overflow:hidden dont work with rounded corners */ doesnotexist:-o-prefocus, #prbar { border-radius:0px; } #prpos { width:0%; height:30px; background-color:#3399ff; border-right:1px solid #bbbbbb; /* CSS3 進度條漸變 */ transition: width 2s ease; -webkit-transition: width 0s ease; -o-transition: width 0s ease; -moz-transition: width 0s ease; -ms-transition: width 0s ease; /* CSS3 Stripes */ background-image: linear-gradient(135deg,#3399ff 25%,#99ccff 25%,#99ccff 50%, #3399ff 50%, #3399ff 75%,#99ccff 75%,#99ccff 100%); background-image: -moz-linear-gradient(135deg,#3399ff 25%,#99ccff 25%,#99ccff 50%, #3399ff 50%, #3399ff 75%,#99ccff 75%,#99ccff 100%); background-image: -ms-linear-gradient(135deg,#3399ff 25%,#99ccff 25%,#99ccff 50%, #3399ff 50%, #3399ff 75%,#99ccff 75%,#99ccff 100%); background-image: -o-linear-gradient(135deg,#3399ff 25%,#99ccff 25%,#99ccff 50%, #3399ff 50%, #3399ff 75%,#99ccff 75%,#99ccff 100%); background-image: -webkit-gradient(linear, 100% 100%, 0 0,color-stop(.25, #99ccff), color-stop(.25, #3399ff),color-stop(.5, #3399ff),color-stop(.5, #99ccff),color-stop(.75, #99ccff),color-stop(.75, #3399ff),color-stop(1, #3399ff)); background-image: -webkit-linear-gradient(135deg,#3399ff 25%,#99ccff 25%,#99ccff 50%, #3399ff 50%, #3399ff 75%,#99ccff 75%,#99ccff 100%); background-size: 40px 40px; /* Background stripes animation */ animation: bganim 3s linear 2s infinite; -moz-animation: bganim 3s linear 2s infinite; -webkit-animation: bganim 3s linear 2s infinite; -o-animation: bganim 3s linear 2s infinite; -ms-animation: bganim 3s linear 2s infinite; } @keyframes bganim { from {background-position:0px;} to { background-position:40px;} } @-moz-keyframes bganim { from {background-position:0px;} to { background-position:40px;} } @-webkit-keyframes bganim { from {background-position:0px;} to { background-position:40px;} } @-o-keyframes bganim { from {background-position:0px;} to { background-position:40px;} } @-ms-keyframes bganim { from {background-position:0px;} to { background-position:40px;} }
進度條的寬度和高度的需要只能指定一次,指定的寬度在“prbar”和高度在“prpos”內。
您可以修改成任何你想要的背景條紋或任何紋理例如使用線性漸變,你可以畫,線,圓
The Animation :
我們的進度條的動畫,我們只需要設置另外一個div的寬度,最簡單的方法當然是直接指定百分比計算的寬度。
小的JavaScript函數將讀取的輸入值,並設置寬度為動畫的進度條
function MoveTo() { var prpos = document.getElementById('prpos'); prpos.style.width = document.getElementById('moveTo').value + "%"; }