js實現動態進度條詳解

antzone發表於2017-04-17

本章節分享一段程式碼例項,它實現了動態進度條效果。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
#main{
  width: 100px;
  height: 30px;
  background: #ddd;
  overflow: hidden;
}
#progress{
  width: 1%;
  height: 30px;
  background: #aaf;
}
</style>
<script type="text/javascript">
window.onload=function(){
  var bid=document.getElementById("bid");
  var progress=document.getElementById("progress");
  bid.onclick=function(){
    pro=0;
    speed=1;//速度
    sobj=setInterval(function(){
      pro+=speed;
      if(pro>=50){
        speed=5;//進度大於50%的時候加快速度
      }
      if(pro>=100){
        clearInterval(sobj);
      }
      progress.style.width=pro+'%';
    },100)
  }
}
</script>
</head>
<body>
<div id="main">
  <div id="progress"></div>
</div>
<button id="bid">檢視演示</button>
</body>
</html>

上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。

一.程式碼註釋:

(1).window.onload=function(){},當文件內容完全載入完畢再去執行函式中的程式碼。

(2).var bid=document.getElementById("bid"),獲取id屬性值為bid的元素物件。

(3).var progress=document.getElementById("progress"),獲取id屬性值為progress的元素物件。

(4).bid.onclick=function(){},為元素註冊onclick事件處理函式。

(5).pro=0,宣告一個變數並賦初值為0,後面會介紹它的作用。

(6).speed=1,宣告一個變數並賦初值為1,後面會介紹它的作用。

(7).sobj=setInterval(function(){},100),每隔100毫秒執行一次回撥函式。

(8).pro+=speed,pro表示已經進行的百分比 。(9).if(pro>=50){

  speed=5;

},如果大於等於50,那麼就將速度設定為5,也就是定時器函式沒執行一次,變化的尺寸是5px。

(10).if(pro>=100){

  clearInterval(sobj);

},如果大於等於100,那麼就停止定時器函式的執行。

(11).progress.style.width=pro+'%',設定設定progress的寬度,也就是內部進度條的尺寸。

二.相關閱讀:

(1).setInterval()可以參閱setInterval()一章節。

(2).clearInterval()可以參閱clearInterval()一章節。

相關文章