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

我們知道,頁面是從上往下執(zhí)行的,也就是說我們可以大致估算出在頁面的某個位置加載了多少,而后用jq模擬出一個進度條來顯示。
首先我們先畫一個進度條的樣子,也就是上圖圖中的樣子,這個不用過多說明,自己看代碼
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">頁面總進度 <font>0</font>%</div>
</div>
</div>
這時候注意了,我們要引用jquery庫,引用的位置不是在head區(qū)域,而是緊接著html代碼下面寫。為什么要這樣,因為樣式我們放head里的原因是保證頁面加載第一步就把樣式加載好,這樣頁面不會亂。而JS則不需要,再加上頁面上大的文件主要也就是js,所以放在body里加載js是為了進度條考慮。
進度條畫好了,jquery引用了,我們現(xià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)容提示信息和加載進度百分比,然后,我用了其他幾個js庫做加載進度測試
<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下載地址:點擊下載

我們知道,頁面是從上往下執(zhí)行的,也就是說我們可以大致估算出在頁面的某個位置加載了多少,而后用jq模擬出一個進度條來顯示。
首先我們先畫一個進度條的樣子,也就是上圖圖中的樣子,這個不用過多說明,自己看代碼
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">頁面總進度 <font>0</font>%</div>
</div>
</div>
這時候注意了,我們要引用jquery庫,引用的位置不是在head區(qū)域,而是緊接著html代碼下面寫。為什么要這樣,因為樣式我們放head里的原因是保證頁面加載第一步就把樣式加載好,這樣頁面不會亂。而JS則不需要,再加上頁面上大的文件主要也就是js,所以放在body里加載js是為了進度條考慮。
進度條畫好了,jquery引用了,我們現(xià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)容提示信息和加載進度百分比,然后,我用了其他幾個js庫做加載進度測試
復(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下載地址:點擊下載
您可能感興趣的文章:
- jquery實現(xiàn)模擬百分比進度條漸變效果代碼
- 基于jquery的多彩百分比 動態(tài)進度條 投票效果顯示效果實現(xiàn)代碼
- jquery 簡單的進度條實現(xiàn)代碼
- 6款新穎的jQuery和CSS3進度條插件推薦
- 分享8款優(yōu)秀的 jQuery 加載動畫和進度條插件
- jQuery 頁面載入進度條實現(xiàn)代碼
- Jquery Uploadify上傳帶進度條的簡單實例
- 用jQuery模擬頁面加載進度條的實現(xiàn)代碼
- jquery實現(xiàn)的一個簡單進度條效果實例
- jQuery實現(xiàn)文件上傳進度條特效
- 基于HTML5 Ajax文件上傳進度條如何實現(xiàn)(jquery版本)
- jQuery實現(xiàn)的簡單百分比進度條效果示例
相關(guān)文章
jQuery Attributes(屬性)的使用(一、屬性篇)
本系列文章主要講述jQuery框架的屬性(Attributes)使用方法,文章分為:屬性篇、類篇、Html代碼篇&文本篇、值篇共4篇文章。2009-12-12
JQueryMiniUI按照時間進行查詢的實現(xiàn)方法
下面小編就為大家?guī)硪黄狫QueryMiniUI按照時間進行查詢的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06
jquery統(tǒng)計輸入文字的個數(shù)并對其進行判斷
判斷輸入文字個數(shù)并提示還可以輸入多少個字,類似的功能使用jquery便可輕松實現(xiàn)2014-01-01
JavaScript實現(xiàn)的彈出遮罩層特效經(jīng)典示例【基于jQuery】
這篇文章主要介紹了JavaScript實現(xiàn)的彈出遮罩層特效,結(jié)合實例形式分析了基于jQuery實現(xiàn)的頁面元素與屬性動態(tài)操作相關(guān)使用技巧,需要的朋友可以參考下2019-07-07
jQuery實現(xiàn)獲取form表單內(nèi)容及綁定數(shù)據(jù)到form表單操作分析
這篇文章主要介紹了jQuery實現(xiàn)獲取form表單內(nèi)容及綁定數(shù)據(jù)到form表單操作,結(jié)合jQuery封裝插件操作分析了jQuery針對form表單的serializeJson數(shù)據(jù)獲取及setForm數(shù)據(jù)綁定相關(guān)操作技巧,需要的朋友可以參考下2018-07-07
深入理解jQuery中l(wèi)ive與bind方法的區(qū)別
本篇文章主要是對jQuery中l(wèi)ive與bind方法的區(qū)別進行了詳細的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12

