基于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 相关文章推荐
JS中==与===操作符的比较
Mar 21 Javascript
jQuery入门问答 整理的几个常见的初学者问题
Feb 22 Javascript
Javascript图像处理思路及实现代码
Dec 25 Javascript
JavaScript中this详解
Sep 01 Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
Dec 02 Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
Dec 28 Javascript
原生JS和jQuery版实现文件上传功能
Apr 18 Javascript
jquery实现简单实用的轮播器
May 23 jQuery
vue实现多个元素或多个组件之间动画效果
Sep 25 Javascript
详解Vue中的基本语法和常用指令
Jul 23 Javascript
Vue学习笔记之计算属性与侦听器用法
Dec 07 Javascript
Vue3中的Refs和Ref详情
Nov 11 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
JavaScript 对Cookie 操作的封装小结
2009/12/31 Javascript
javascript面向对象编程代码
2011/12/19 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
javascript实现右下角广告框效果
2017/02/01 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
Vue 换肤的示例实践
2018/01/23 Javascript
JavaScript面试出现频繁的一些易错点整理
2018/03/29 Javascript
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
关于JavaScript中高阶函数的魅力详解
2018/09/07 Javascript
vue单页应用在页面刷新时保留状态数据的方法
2018/09/21 Javascript
基于vue实现圆形菜单栏组件
2019/07/05 Javascript
理解JavaScript中的对象
2020/08/25 Javascript
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python正则表达式中的括号匹配问题
2014/12/14 Python
Python中logging实例讲解
2019/01/17 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
2019/08/20 Python
python实现飞机大战小游戏
2019/11/08 Python
多个python文件调用logging模块报错误
2020/02/12 Python
canvas之万花筒效果的简单实现(推荐)
2016/08/16 HTML / CSS
Champion官网:美国冠军运动服装
2017/01/25 全球购物
家长评语大全
2014/01/22 职场文书
公司开业庆典主持词
2014/03/21 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
2014年检验科工作总结
2014/11/22 职场文书
个人求职信格式范文
2015/03/20 职场文书
给老师的保证书怎么写
2015/05/09 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
SpringBoot整合阿里云视频点播的过程详解
2021/12/06 Java/Android