基于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插件处理mouseover时内部有子元素时发生样式闪烁
Dec 08 Javascript
JavaScript编程中布尔对象的基本使用
Oct 25 Javascript
Bootstrap Table使用方法详解
Aug 01 Javascript
jquery对象和DOM对象的相互转换详解
Oct 18 Javascript
jquery心形点赞关注效果的简单实现
Nov 14 Javascript
Bootstrap3下拉菜单的实现
Feb 22 Javascript
canvas实现刮刮卡效果
Mar 14 Javascript
js随机生成一个验证码
Jun 01 Javascript
Vue AST源码解析第一篇
Jul 19 Javascript
微信小程序中button组件的边框设置的实例详解
Sep 27 Javascript
详解如何构建Promise队列实现异步函数顺序执行
Oct 23 Javascript
vue-i18n实现中英文切换的方法
Jul 06 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
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
js实时监听文本框状态的方法
2011/04/26 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
Javascript的闭包详解
2014/12/26 Javascript
jQuery中:first-child选择器用法实例
2014/12/31 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
jQuery的框架介绍
2016/05/11 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
分分钟玩转Vue.js组件
2016/10/25 Javascript
利用Angularjs中模块ui-route管理状态的方法
2016/12/27 Javascript
discuz表情的JS提取方法分析
2017/03/22 Javascript
微信小程序使用navigateTo数据传递的实例
2017/09/26 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
详解react-redux插件入门
2018/04/19 Javascript
微信小程序提交form操作示例
2018/12/30 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
2019/04/26 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
微信小程序实现点击效果
2019/06/21 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
[02:10]DOTA2 TI10勇士令状玩法及不朽Ⅰ展示:焕新世界,如你所期
2020/05/29 DOTA
Python使用GitPython操作Git版本库的方法
2020/02/29 Python
python标准库OS模块详解
2020/03/10 Python
Python基于pyecharts实现关联图绘制
2020/03/27 Python
python 常见的排序算法实现汇总
2020/08/21 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
机械专业毕业生推荐信范文
2013/11/25 职场文书
教师辞职报告范文
2014/01/20 职场文书
中学家长会邀请函
2014/02/03 职场文书
学校教师读书活动总结
2014/07/08 职场文书
英语投诉信范文
2015/07/03 职场文书
八年级物理教学反思
2016/02/19 职场文书
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫
python神经网络ResNet50模型
2022/05/06 Python