基于jQuery实现模拟页面加载进度条


Posted in Javascript onApril 01, 2013

因为我们无法通过任何方法获取整个页面的大小和当前加载了多少,所以想制作一个加载进度条的唯一办法就是模拟。那要怎么模拟呢?
基于jQuery实现模拟页面加载进度条

我们知道,页面是从上往下执行的,也就是说我们可以大致估算出在页面的某个位置加载了多少,而后用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">系统初始化中</div> 
<div class="jindu"> 
<b></b> 
<div class="jindu2"></div> 
<div class="text">页面总进度 <font>0</font>%</div> 
</div> 
</div>

这时候注意了,我们要引用jquery库,引用的位置不是在head区域,而是紧接着html代码下面写。为什么要这样,因为样式我们放head里的原因是保证页面加载第一步就把样式加载好,这样页面不会乱。而JS则不需要,再加上页面上大的文件主要也就是js,所以放在body里加载js是为了进度条考虑。
进度条画好了,jquery引用了,我们现在要写个方法,也就是可以让进度条动起来
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),两个参数分别是显示加载内容提示信息和加载进度百分比,然后,我用了其他几个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下载地址:点击下载
Javascript 相关文章推荐
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
Apr 23 Javascript
js同源策略详解
May 21 Javascript
简介JavaScript中的sub()方法的使用
Jun 08 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
Oct 21 Javascript
手机端js和html5刮刮卡效果
Sep 29 Javascript
tab栏切换原理
Mar 22 Javascript
整理关于Bootstrap过渡动画的慕课笔记
Mar 29 Javascript
angularjs中使用ng-bind-html和ng-include的实例
Apr 28 Javascript
Angular获取手机验证码实现移动端登录注册功能
May 17 Javascript
详解Vue微信公众号开发踩坑全记录
Aug 21 Javascript
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 jQuery
详解如何在vue项目中使用lodop打印插件
Sep 27 Javascript
javascript ie6兼容position:fixed实现思路
Apr 01 #Javascript
JavaScript中的onerror事件概述及使用
Apr 01 #Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
Apr 01 #Javascript
向当前style sheet中插入一个新的style实现方法
Apr 01 #Javascript
select标签模拟/美化方法采用JS外挂式插件
Apr 01 #Javascript
html组件不可输入(只读)同时任何组件都有效
Apr 01 #Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
Mar 31 #Javascript
You might like
ThinkPHP与PHPExcel冲突解决方法
2011/08/08 PHP
怎么在Windows系统中搭建php环境
2013/08/31 PHP
PHP安全上传图片的方法
2015/03/21 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
上传的js验证(图片/文件的扩展名)
2013/04/25 Javascript
再探JavaScript作用域
2014/09/24 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
2015/06/05 Javascript
javascript中if和switch,==和===详解
2015/07/30 Javascript
正则表达式优化JSON字符串的技巧
2015/12/24 Javascript
jQuery日程管理控件glDatePicker用法详解
2017/03/29 jQuery
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
jQuery pagination分页示例详解
2018/10/23 jQuery
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
小程序跨页面交互的作用与方法详解
2020/01/07 Javascript
[06:16]第十四期-国士无双绝地翻盘之撼地神牛
2014/06/24 DOTA
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
python中logging模块的一些简单用法的使用
2019/02/22 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
Python 用三行代码提取PDF表格数据
2019/10/13 Python
python yield和Generator函数用法详解
2020/02/10 Python
美国知名的网上鞋类及相关服装零售商:Shoes.com
2017/05/06 全球购物
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
财务会计专业自荐书
2014/06/30 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
离婚协议书标准格式
2014/10/04 职场文书
家长学校教学计划
2015/01/19 职场文书
2015年学校心理健康教育工作总结
2015/05/11 职场文书
小学生暑假安全公约
2015/07/14 职场文书
大学组织委员竞选稿
2015/11/21 职场文书