基于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 相关文章推荐
jQuery 类twitter的文本字数限制带提示效果插件
Apr 16 Javascript
Javascript动画效果(1)
Oct 11 Javascript
js实现模糊匹配功能
Feb 15 Javascript
Node.js 实现简单的接口服务器的实例代码
May 23 Javascript
angular中使用Socket.io实例代码
Jun 03 Javascript
原生JS实现轮播图效果
Oct 12 Javascript
微信小程序实现登录遮罩效果
Nov 01 Javascript
JavaScript动态创建二维数组的方法示例
Feb 01 Javascript
vue router 组件的高级应用实例代码
Apr 08 Javascript
JavaScript中的全局属性与方法深入解析
Jun 14 Javascript
vue实现轮播图帧率播放
Jan 26 Vue.js
解决vue-router的beforeRouteUpdate不能触发
Apr 14 Vue.js
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
dede3.1分页文字采集过滤规则详说(图文教程)续二
2007/04/03 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
php实现字符串首字母转换成大写的方法
2015/03/17 PHP
php实现短信发送代码
2015/07/05 PHP
php对xml文件的增删改查操作实现方法分析
2017/05/19 PHP
jQuery插件 tabBox实现代码
2010/02/09 Javascript
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
2015/12/03 Javascript
js实现非常棒的弹出div
2016/10/06 Javascript
微信小程序 scroll-view隐藏滚动条详解
2017/01/16 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
浅谈FastClick 填坑及源码解析
2018/03/02 Javascript
element上传组件循环引用及简单时间倒计时的实现
2018/10/01 Javascript
微信小程序实现获取小程序码和二维码java接口开发
2019/03/29 Javascript
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
Python读写unicode文件的方法
2015/07/10 Python
python中字符串类型json操作的注意事项
2017/05/02 Python
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
python实现Excel文件转换为TXT文件
2019/04/28 Python
python实现图片九宫格分割
2021/03/07 Python
python实现PID算法及测试的例子
2019/08/08 Python
python文字转语音实现过程解析
2019/11/12 Python
python产生模拟数据faker库的使用详解
2020/11/04 Python
英国领先的珍珠首饰品牌:Orchira
2016/09/11 全球购物
医学生职业规划范文
2014/01/05 职场文书
高中化学教学反思
2014/01/13 职场文书
商场活动策划方案
2014/01/24 职场文书
道德模范先进事迹
2014/02/14 职场文书
物流管理系毕业生求职信
2014/06/03 职场文书
司法局群众路线教育实践活动开展情况总结
2014/10/25 职场文书
圣诞晚会主持词
2015/07/01 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书
2016年共产党员公开承诺书
2016/03/24 职场文书
关于Mybatis中SQL节点的深入解析
2022/03/19 Java/Android