JavaScript百分比動態進度條
本章節分享一段程式碼例項,它實現了百分比動態進度條效果,實際應用通常需要和後臺配合使用。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> #progressBox{ width: 300px; height: 40px; border: 1px solid #c8c8c8; background: white; position: relative; } #progressBar{ position: absolute; left: 0; top: 0; z-index: 2; height: 40px; width: 100%; line-height: 40px; color: white; text-align: center; font-size: 20px; font-weight: bold; font-family: Georgia; clip: rect(0px,0px,40px,0px); background: #00A1F5; } #progressText{ position: absolute; left: 0; top: 0; z-index: 1; width: 100%; height: 40px; line-height: 40px; color: black; text-align: center; font-size: 20px; font-weight: bold; font-family: Georgia; } </style> <script> window.onload = function () { var iNow = 0; var timer = setInterval(function (argument) { if (iNow == 100) { clearInterval(timer); } else { iNow += 1; progressFn(iNow); } }, 30); function progressFn(cent) { var oDiv1 = document.getElementById('progressBox'); var oDiv2 = document.getElementById('progressBar'); var oDiv3 = document.getElementById('progressText'); var allWidth = parseInt(getStyle(oDiv1, 'width')); oDiv2.innerHTML = cent + '%'; oDiv3.innerHTML = cent + '%'; oDiv2.style.clip = 'rect(0px,' + cent / 100 * allWidth + 'px,40px,0px)'; function getStyle(obj, attr) { if (obj.currentStyle) { return obj.currentStyle[attr]; } else { return getComputedStyle(obj, false)[attr]; } } } } </script> </head> <body> <div id="progressBox"> <div id="progressBar">0%</div> <div id="progressText">0%</div> </div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).window.onload = function () {},當文件內容完全載入完畢再去執行函式中的程式碼。
(2).var iNow = 0,宣告一個變數並賦值為0,用來作為百分比的數字。
(3).var timer = setInterval(function (argument) {
if (iNow == 100) {
clearInterval(timer);
} else {
iNow += 1;
progressFn(iNow);
}
}, 30),一個定時器函式,每隔30毫秒執行一次指定函式。
如果iNow值等於100,那麼就停止定時器函式的執行。
否則的話iNow值每次加1,並且呼叫progressFn(),從而實現動態百分比效果。
(4).function progressFn(cent) {},引數是一個數字。
(5).var oDiv1 = document.getElementById('progressBox');
var oDiv2 = document.getElementById('progressBar');
var oDiv3 = document.getElementById('progressText');
獲取三個元素物件。
(6).var allWidth = parseInt(getStyle(oDiv1, 'width')),獲取元素的width值。
(7).oDiv2.innerHTML = cent + '%',設定元素的內容,就是那個動態的百分比數字。
(8).oDiv3.innerHTML = cent + '%',之所以有和上面這麼重複的一步,是因為,剛開始progressBar元素的寬度是0,沒有覆蓋progressText元素,但是隨著progressBar元素寬度的增加,最終會覆蓋掉progressText元素顯示的百分比數字,兩個同時設定就能保證無論何時都能夠完整顯示百分比數字。
(9).oDiv2.style.clip = 'rect(0px,' + cent / 100 * allWidth + 'px,40px,0px)',動態設定元素的click屬性值。
(10).function getStyle(obj, attr) {},此方法可以獲取元素指定的樣式屬性值。
二.相關閱讀:
(1).setInterval()參閱setInterval()一章節。
(2).clearInterval()參閱clearInterval()一章節。
(3).parseInt()參閱javascript parseInt()一章節。
(4). innerHTML參閱innerHTML一章節。
(5).clip屬性參閱CSS3 clip一章節。
(6).getStyle()參閱js如何獲取非內部取樣式表中定義的屬性值一章節。
相關文章
- JavaScript 動態進度條效果詳解JavaScript
- javascript百分比進度條效果程式碼例項JavaScript
- Js 百分比進度條JS
- vue 自定義指令實現,滾動條百分比進度條。Vue
- javascript實現的帶有百分比的進度條效果JavaScript
- YCProgress自定義百分比進度條
- svg環形百分比進度條SVG
- canvas環形百分比進度條效果Canvas
- js百分比載入進度條效果JS
- jQuery動態進度條程式碼例項jQuery
- js實現動態進度條詳解JS
- canvas百分比環形進度條程式碼Canvas
- css實現螺紋動態進度條效果CSS
- 短視訊商城系統,Android進度條,自定義進度條,顯示百分比Android
- Qt實現炫酷啟動圖-動態進度條QT
- canvas實現具有粒子效果的動態進度條Canvas
- 【新特性速遞】進度條,進度條,進度條
- JavaScript帶有百分比的滑動條效果JavaScript
- 基於 D3.js 繪製動態進度條JS
- JavaScript 原生實現進度條元件.mdJavaScript元件
- ajax進度條 非同步下載進度條非同步
- Javascript 及 CSS3 實現進度條效果JavaScriptCSSS3
- Qt 進度條QT
- javascript如何獲取滾動條的寬度JavaScript
- C# 下載帶進度條程式碼(普通進度條)C#
- HTML <progress> 進度條HTML
- wkwebView 新增 進度條WebView
- canvas 畫進度條Canvas
- wxWidgets進度條
- 自定義進度條
- 學習進度條
- 簡單進度條
- 前端學習筆記:使用canvas繪製有圓角的百分比進度條前端筆記Canvas
- MFC在狀態列中使用進度條控制元件控制元件
- HTML5中實現進度條繫結輸出結果以及滑動條動態調整顏色案例HTML
- Python進度條技巧Python
- 自定義view - 進度條View
- 自定義進度條列表