原生JS實(shí)現(xiàn)加載進(jìn)度條
本文分享一個(gè)原生JS實(shí)現(xiàn)的動(dòng)態(tài)加載進(jìn)度條特效,效果如下:
實(shí)現(xiàn)的代碼如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>原生JS實(shí)現(xiàn)加載進(jìn)度條</title> <style> #progressBox { width: 300px; height: 40px; border: 1px solid #C8C8C8; background: white; position: relative; margin: 0 auto; margin-top: 100px; } #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, 0, 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 () { // 設(shè)定當(dāng)前起始狀態(tài)值, // 真實(shí)情況中用html5的onprogress和onload來(lái)完成 // 還可以跟后臺(tái)配合,通過(guò)ajax實(shí)時(shí)的返回?cái)?shù)據(jù) var iNow = 0; // 設(shè)定定時(shí)器 var timer = setInterval(function () { // 如果當(dāng)前的值為100 if (iNow == 100) { // 清除定時(shí)器 clearInterval(timer); }else { // 將當(dāng)前狀態(tài)值累加1 iNow += 1; // 調(diào)用執(zhí)行狀態(tài)的函數(shù),傳入狀態(tài)值 progressFn(iNow); } }, 30); function progressFn(cent) { // 獲取最外層的div var oDiv1 = document.getElementById('progressBox'); // 獲取內(nèi)層進(jìn)度條的div var oDiv2 = document.getElementById('progressBar'); // 獲取內(nèi)層文字發(fā)生變化時(shí)的div var oDiv3 = document.getElementById('progressText'); // 獲取總進(jìn)度條的寬度 var allWidth = parseInt(getStyle(oDiv1, 'width')); // 設(shè)定內(nèi)層兩個(gè)div的文字內(nèi)容一樣 oDiv2.innerHTML = cent + '%'; oDiv3.innerHTML = cent + '%'; // 修改clip的的寬度值 oDiv2.style.clip = 'rect(0px, ' + cent / 100 * allWidth + 'px, 40px, 0px)'; // 獲取當(dāng)前元素的屬性值 function getStyle(obj, attr) { // 兼容IE if (obj.currentStyle) { return obj.currentStyle[attr]; }else { // 第二個(gè)參數(shù)為false是通用的寫(xiě)法,目的是為了兼容老版本 return getComputedStyle(obj, false)[attr]; } } } }; </script> </head> <body> <div id="progressBox"> <div id="progressBar">0%</div> <!-- 設(shè)定第二個(gè)層以便當(dāng)進(jìn)度超過(guò)文字的時(shí)候,修改文字的顏色 --> <div id="progressText">0%</div> </div> </body> </html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JS實(shí)現(xiàn)進(jìn)度條動(dòng)態(tài)加載特效
- js+HTML5 canvas 實(shí)現(xiàn)簡(jiǎn)單的加載條(進(jìn)度條)功能示例
- JS+WCF實(shí)現(xiàn)進(jìn)度條實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)加載量的方法詳解
- 簡(jiǎn)單實(shí)現(xiàn)js進(jìn)度條加載效果
- 淺析JS異步加載進(jìn)度條
- js ajax加載時(shí)的進(jìn)度條代碼
- pace.js頁(yè)面加載進(jìn)度條插件
- JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)加載進(jìn)度條代碼超簡(jiǎn)單
- jquery插件NProgress.js制作網(wǎng)頁(yè)加載進(jìn)度條
- javascript 實(shí)現(xiàn)頁(yè)面加載進(jìn)度條代碼
相關(guān)文章
html+javascript實(shí)現(xiàn)可拖動(dòng)可提交的彈出層對(duì)話(huà)框效果
本文為大家介紹下使用html+javascript實(shí)現(xiàn)可拖動(dòng)彈出層、對(duì)話(huà)框、可提交,具體代碼如下,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08使用JavaScript italics方法實(shí)現(xiàn)文本變斜體教程示例
這篇文章主要為大家介紹了JavaScript italics實(shí)現(xiàn)文本變斜體教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12HTML+JavaScript實(shí)現(xiàn)掃雷小游戲
這篇文章主要為大家詳細(xì)介紹了HTML+JavaScript實(shí)現(xiàn)掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09JS實(shí)現(xiàn)的貪吃蛇游戲完整實(shí)例
這篇文章主要介紹了JS實(shí)現(xiàn)的貪吃蛇游戲,結(jié)合完整實(shí)例形式分析了javascript實(shí)現(xiàn)貪吃蛇游戲的具體步驟、原理與相關(guān)操作技巧,需要的朋友可以參考下2019-01-01在iframe中使bootstrap的模態(tài)框在父頁(yè)面彈出問(wèn)題
這篇文章主要介紹了在iframe中使bootstrap的模態(tài)框在父頁(yè)面彈出問(wèn)題,解決方法非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-08-08逐行分析鴻蒙系統(tǒng)的 JavaScript 框架(推薦)
鴻蒙系統(tǒng)使用 JavaScript 開(kāi)發(fā) GUI 是一種類(lèi)似于微信小程序、輕應(yīng)用的模式。這篇文章給大家?guī)?lái)了逐行分析鴻蒙系統(tǒng)的 JavaScript 框架的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧2020-09-09JavaScript中使用ActiveXObject操作本地文件夾的方法
以前一直用vbscript來(lái)操作文件夾,才發(fā)現(xiàn)原來(lái)使用JavaScript也是可以的,肯定不如vbs用的簡(jiǎn)單,不過(guò)學(xué)習(xí)一下還是不錯(cuò)的2014-03-03JavaScript讀取中文cookie時(shí)的亂碼問(wèn)題的解決方法
讀取中文cookie時(shí)出現(xiàn)亂碼,下面是具體的解決方法,大家以后使用過(guò)程中,盡量不要用中文。2009-10-10