Js操控----HTML5 <progress> 標簽
簡單模擬下下載進度跑條
1 <h4>加載進度</h4> 2 <input type="button" value="下載" onclick="DownloadStart();" /> 3 <progress id="Download" value="" max="100"></progress> 4 5 <script> 6 function DownloadStart() { 7 alert("加載下載") 8 var Down = document.getElementById("Download"); 9 var i = 0; 10 var DownSetTime; 11 DownSetTime = setInterval(function () { 12 i += 10 13 Down.value = i; 14 if (i == 100) { 15 clearInterval(DownSetTime); 16 alert("加載完成") 17 } 18 }, 500) 19 } 20 21 </script>
當然了,真正的進度是肯定不能這樣寫的,因為實際上目前還沒有一種方法可以判斷進度的進程,因此只能讓跑條一直跑,或者跑到一個頂峰然后停着等下載完成,直接跳了100%。
例一:進度條跑到90,然后等,等服務器或者其他地方傳進來一個值,然后再一下子到100.
1 <h4>加載進度</h4> 2 <input type="button" value="加載" onclick="LoadStart();" /> 3 <progress id="Load" value="0" max="100"></progress> 4 5 <script> 6 function LoadStart() { 7 var Complete = 0;//加載完成與否,初始為0,完成為1 8 var Load = document.getElementById("Load");//獲取進度條 9 var i = 0;//聲明跑條的初始值 10 11 //加載進度跑條 12 LoadSetTime = setInterval(function () { 13 i += 10;//每500毫米跑10份 14 Load.value = i; 15 if (i >= 90) {//當跑條到90時,就不跑了,停止 16 clearInterval(LoadSetTime); 17 return; 18 } 19 }, 500); 20 21 //加載完成與否 22 GetData = setInterval(function () { 23 if (Complete == 1) {//當加載完成,也就等於1的時候 24 Load.value = 100;//跑條完成,到100 25 alert("加載完成"); 26 clearInterval(GetData);//加載完成的計時器清除加載完成與否計時器 27 clearInterval(LoadSetTime);//加載完成的計時器清除加載進度跑條計時器 28 } 29 }); 30 31 //從服務器獲得加載內容完成與否的值,當然了你可以定義這個值從任何地方來,比如頁面加載完成,動畫加載完成,圖片加載完成,一個動作執行完畢等等都可以,具體看你需要用在的地方 32 $.post(URL, function (data) { 33 if (parseInt(data) == 1) { 34 Complete = 1; 35 } 36 }) 37 } 38 </script>
例二:進度條一直跑,然后等,等服務器或者其他地方傳進來一個值,然后再一下子到100以后清除所有計時器,加載完成
1 <h4>加載進度</h4> 2 <input type="button" value="加載" onclick="LoadStart();" /> 3 <progress id="Load" value="0" max="100"></progress> 4 5 <script> 6 function LoadStart() { 7 var Complete = 0;//加載完成與否,初始為0,完成為1 8 var Load = document.getElementById("Load");//獲取進度條 9 var i = 0;//聲明跑條的初始值 10 11 //加載進度跑條 12 LoadSetTime = setInterval(function () { 13 i += 10;//每500毫米跑10份 14 Load.value = i; 15 if (i == 100) { 16 i = 0; 17 } 18 }, 500); 19 20 //加載完成與否 21 GetData = setInterval(function () { 22 if (Complete == 1) {//當加載完成,也就等於1的時候 23 Load.value = 100;//跑條完成,到100 24 clearInterval(GetData);//加載完成的計時器清除加載完成與否計時器 25 clearInterval(LoadSetTime);//加載完成的計時器清除加載進度跑條計時器 26 } 27 }); 28 29 //從服務器獲得加載內容完成與否的值,當然了你可以定義這個值從任何地方來,比如頁面加載完成,動畫加載完成,圖片加載完成,一個動作執行完畢等等都可以,具體看你需要用在的地方 30 $.post(URL, function (data) { 31 if (parseInt(data) == 1) { 32 Complete = 1; 33 } 34 }) 35 } 36 </script>
ok,簡單介紹下js操控“progress”標簽,具體看你用在什么地方。
作者:leona
版權聲明:本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接
