基于jQuery實(shí)現(xiàn)模擬頁面加載進(jìn)度條
更新時間:2013年04月01日 11:09:14 作者:
進(jìn)度條的出現(xiàn)在于無法通過任何方法獲取整個頁面的大小和當(dāng)前加載了多少,所以只能用進(jìn)度條來模擬,接下來為大家介紹下實(shí)現(xiàn)方法,感興趣的朋友可以參考下哈
因?yàn)槲覀儫o法通過任何方法獲取整個頁面的大小和當(dāng)前加載了多少,所以想制作一個加載進(jìn)度條的唯一辦法就是模擬。那要怎么模擬呢?

我們知道,頁面是從上往下執(zhí)行的,也就是說我們可以大致估算出在頁面的某個位置加載了多少,而后用jq模擬出一個進(jìn)度條來顯示。
首先我們先畫一個進(jìn)度條的樣子,也就是上圖圖中的樣子,這個不用過多說明,自己看代碼
CSS
.loading{position:relative;top:0;left:0}
.tip1{float:left;background:#A70000;color:#fff;height:32px;line-height:32px;padding:0 15px;border:0;position:relative}
.jindu{float:left;margin-left:20px;color:#fff;width:150px;height:32px;line-height:32px;background:#000;position:relative}
.jindu b{color:#A70000;width:0;height:0;font-size:0px;border-width:10px;border-color:#fff #fff #fff #A70000;border-style:solid;position:absolute;left:-20px;top:5px;overflow:hidden}
.jindu .jindu2{width:0px;height:32px;line-height:32px;background:#A70000;position:absolute}
.jindu .text{width:150px;height:32px;line-height:32px;text-align:center;position:absolute}
HTML
<div class="loading">
<div class="tip1">系統(tǒng)初始化中</div>
<div class="jindu">
<b></b>
<div class="jindu2"></div>
<div class="text">頁面總進(jìn)度 <font>0</font>%</div>
</div>
</div>
這時候注意了,我們要引用jquery庫,引用的位置不是在head區(qū)域,而是緊接著html代碼下面寫。為什么要這樣,因?yàn)闃邮轿覀兎舎ead里的原因是保證頁面加載第一步就把樣式加載好,這樣頁面不會亂。而JS則不需要,再加上頁面上大的文件主要也就是js,所以放在body里加載js是為了進(jìn)度條考慮。
進(jìn)度條畫好了,jquery引用了,我們現(xiàn)在要寫個方法,也就是可以讓進(jìn)度條動起來
var loading = function(a,b){
var c = b*1.5;
if(b==100){
$('.bgloader .jindu2').animate({width:c+'px'},500,function(){
$('.bgloader .tip1').text(a);
$('.bgloader font').text(b);
$('.bgloader .loading').animate({top:'-32px'},1000,function(){
$('.bgloader').fadeOut();
});
});
}else{
$('.bgloader .jindu2').animate({width:c+'px'},500,function(){
$('.bgloader .tip1').text(a);
$('.bgloader font').text(b);
});
}
};
這里我寫了個loading(a,b),兩個參數(shù)分別是顯示加載內(nèi)容提示信息和加載進(jìn)度百分比,然后,我用了其他幾個js庫做加載進(jìn)度測試
<script type="text/javascript">loading('正在加載jQuery UI',30);</script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
<script type="text/javascript">loading('正在加載Chrome Frame',50);</script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1.0.2/CFInstall.min.js"></script>
<script type="text/javascript">loading('正在加載EXTJS',70);</script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/ext-core/3.1.0/ext-core.js"></script>
<script type="text/javascript">loading('正在加載mootools',90);</script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/mootools/1.4.1/mootools-yui-compressed.js"></script>
<script type="text/javascript">loading('正在加載dojo',100);</script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojo/dojo.xd.js"></script>
demo下載地址:點(diǎn)擊下載

我們知道,頁面是從上往下執(zhí)行的,也就是說我們可以大致估算出在頁面的某個位置加載了多少,而后用jq模擬出一個進(jìn)度條來顯示。
首先我們先畫一個進(jìn)度條的樣子,也就是上圖圖中的樣子,這個不用過多說明,自己看代碼
CSS
復(fù)制代碼 代碼如下:
.loading{position:relative;top:0;left:0}
.tip1{float:left;background:#A70000;color:#fff;height:32px;line-height:32px;padding:0 15px;border:0;position:relative}
.jindu{float:left;margin-left:20px;color:#fff;width:150px;height:32px;line-height:32px;background:#000;position:relative}
.jindu b{color:#A70000;width:0;height:0;font-size:0px;border-width:10px;border-color:#fff #fff #fff #A70000;border-style:solid;position:absolute;left:-20px;top:5px;overflow:hidden}
.jindu .jindu2{width:0px;height:32px;line-height:32px;background:#A70000;position:absolute}
.jindu .text{width:150px;height:32px;line-height:32px;text-align:center;position:absolute}
HTML
復(fù)制代碼 代碼如下:
<div class="loading">
<div class="tip1">系統(tǒng)初始化中</div>
<div class="jindu">
<b></b>
<div class="jindu2"></div>
<div class="text">頁面總進(jìn)度 <font>0</font>%</div>
</div>
</div>
這時候注意了,我們要引用jquery庫,引用的位置不是在head區(qū)域,而是緊接著html代碼下面寫。為什么要這樣,因?yàn)闃邮轿覀兎舎ead里的原因是保證頁面加載第一步就把樣式加載好,這樣頁面不會亂。而JS則不需要,再加上頁面上大的文件主要也就是js,所以放在body里加載js是為了進(jìn)度條考慮。
進(jìn)度條畫好了,jquery引用了,我們現(xiàn)在要寫個方法,也就是可以讓進(jìn)度條動起來
復(fù)制代碼 代碼如下:
var loading = function(a,b){
var c = b*1.5;
if(b==100){
$('.bgloader .jindu2').animate({width:c+'px'},500,function(){
$('.bgloader .tip1').text(a);
$('.bgloader font').text(b);
$('.bgloader .loading').animate({top:'-32px'},1000,function(){
$('.bgloader').fadeOut();
});
});
}else{
$('.bgloader .jindu2').animate({width:c+'px'},500,function(){
$('.bgloader .tip1').text(a);
$('.bgloader font').text(b);
});
}
};
這里我寫了個loading(a,b),兩個參數(shù)分別是顯示加載內(nèi)容提示信息和加載進(jìn)度百分比,然后,我用了其他幾個js庫做加載進(jìn)度測試
復(fù)制代碼 代碼如下:
<script type="text/javascript">loading('正在加載jQuery UI',30);</script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
<script type="text/javascript">loading('正在加載Chrome Frame',50);</script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1.0.2/CFInstall.min.js"></script>
<script type="text/javascript">loading('正在加載EXTJS',70);</script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/ext-core/3.1.0/ext-core.js"></script>
<script type="text/javascript">loading('正在加載mootools',90);</script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/mootools/1.4.1/mootools-yui-compressed.js"></script>
<script type="text/javascript">loading('正在加載dojo',100);</script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojo/dojo.xd.js"></script>
demo下載地址:點(diǎn)擊下載
您可能感興趣的文章:
- jquery實(shí)現(xiàn)模擬百分比進(jìn)度條漸變效果代碼
- 基于jquery的多彩百分比 動態(tài)進(jìn)度條 投票效果顯示效果實(shí)現(xiàn)代碼
- jquery 簡單的進(jìn)度條實(shí)現(xiàn)代碼
- 6款新穎的jQuery和CSS3進(jìn)度條插件推薦
- 分享8款優(yōu)秀的 jQuery 加載動畫和進(jìn)度條插件
- jQuery 頁面載入進(jìn)度條實(shí)現(xiàn)代碼
- Jquery Uploadify上傳帶進(jìn)度條的簡單實(shí)例
- 用jQuery模擬頁面加載進(jìn)度條的實(shí)現(xiàn)代碼
- jquery實(shí)現(xiàn)的一個簡單進(jìn)度條效果實(shí)例
- jQuery實(shí)現(xiàn)文件上傳進(jìn)度條特效
- 基于HTML5 Ajax文件上傳進(jìn)度條如何實(shí)現(xiàn)(jquery版本)
- jQuery實(shí)現(xiàn)的簡單百分比進(jìn)度條效果示例
相關(guān)文章
javascript 開發(fā)之網(wǎng)頁兼容各種瀏覽器
這篇文章主要介紹了javascript 開發(fā)之網(wǎng)頁兼容各種瀏覽器的相關(guān)資料,這里提供了幾種方法幫助大家掌握這樣的功能,需要的朋友可以參考下2017-09-09JQuery.dataTables表格插件添加跳轉(zhuǎn)到指定頁
這篇文章主要介紹了JQuery.dataTables表格插件添加跳轉(zhuǎn)到指定頁的解決方案,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-06-06jquery實(shí)現(xiàn)簡單的二級導(dǎo)航下拉菜單效果
這篇文章主要介紹了jquery實(shí)現(xiàn)簡單的二級導(dǎo)航下拉菜單效果,涉及jquery鼠標(biāo)事件動態(tài)操作頁面元素樣式及Ajax調(diào)用的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09jQuery通過控制節(jié)點(diǎn)實(shí)現(xiàn)僅在前臺通過get方法完成參數(shù)傳遞
這篇文章主要介紹了jQuery通過控制節(jié)點(diǎn)實(shí)現(xiàn)僅在前臺通過get方法完成參數(shù)傳遞的功能,實(shí)例分析了jQuery操作節(jié)點(diǎn)的技巧與控制前臺get方法傳遞參數(shù)的用法,具有一定參考借鑒價值,需要的朋友可以參考下2015-02-02jquery實(shí)現(xiàn)點(diǎn)擊彈出對話框
這篇文章主要為大家詳細(xì)介紹了jquery實(shí)現(xiàn)點(diǎn)擊彈出對話框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-02-02