JavaScript 動態進度條效果詳解

admin發表於2018-11-23

在很多需要批量處理的功能都有進度條效果,可以非常直觀的給使用者傳達任務執行效果和執行進度。

下面就簡單介紹一下JavaScript如何實現此效果。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
#wrap{
  width:300px;
  height:100px;
  margin:0px auto;
}
#scroll{
  width:5px;
  height:12px;
  background-color:#600;
  float:left;
}
#percent{
  width:40px;
  float:left;
  height:12px;
  font-size:12px;
  line-height:12px;
}
</style>
<script type="text/javascript">
window.onload=function(){
  var speed=10;
  var myscroll=document.getElementById("scroll");
  var scrollWidth=myscroll.offsetWidth;
  function done(){
    if(myscroll.offsetWidth<=250){
      scrollWidth++;
      myscroll.style.width=scrollWidth+"px";
      document.getElementById("percent").innerHTML=parseInt((myscroll.offsetWidth/250)*100)+"%";
    }
  }
  var flag=setInterval(done,speed);
}
</script>
</head>
<body>
<div id="wrap">
  <div id="scroll"></div>
  <div id="percent"></div>
</div>
</body>
</html>

以上程式碼實現了進度條效果。下面就介紹一下如何實現此效果:

一.實現原理:

(1).純html程式碼下,進度條長度設定為0,背景色#600,設定背景色的目的是為了觀察進度條效果。

(2).JavaScript程式碼處理原理是:當進度條長度小於250的時候,進度條的長度不斷增加,這樣就出現了進度效果。percent元素中的百分數是通過獲取當前進度條的長度,然後除以250(進度條的總長度是250),這樣就獲取了進度,這時是小數形式,所以需要乘以100,再通過parseInt取整,最後使用字串連線"%",這樣就實現了百分數效果。

二.程式碼解釋:

(1).var myscroll=document.getElementById("scroll")獲取滾動條物件。

(2).var scrollWidth=myscroll.offsetWidth獲取滾動條的長度。

(3).done()函式規定當滾動條長度小於等於250的時候,scrollWidth++可以讓獲取的之前滾動條長度加1,然後再使用myscroll.style.width=scrollWidth+"px"將當前滾動條長度設定為增加後的尺寸。

(4).document.getElementById("percent").innerHTML="%"+parseInt((myscroll.offsetWidth/250)*100)將百分數寫入percent物件中。

(5).var flag=setInterval(done,speed)以指定的時間間隔迴圈執行done()函式。

三.相關閱讀:

(1).document.getElementById()參閱document.getElementById()一章節。

(2).offsetWidth參閱JavaScript offsetWidth一章節。

(3).scrollWidth參閱JavaScript scrollWidth一章節。

(4).style參閱JavaScript style 屬性一章節。

(5).innerHTML參閱JavaScript innerHTML 屬性一章節。

(6).parseInt()參閱JavaScript parseInt()一章節。

(7).setInterval()參閱JavaScript setInterval()一章節。

相關文章