JavaScript实现网页加载进度条代码超简单


Posted in Javascript onSeptember 21, 2015

网页进度条能够更好的反应当前网页的加载进度情况,loading进度条可用动画的形式从开始0%到100%完成网页加载这一过程。但是目前的浏览器并没有提供页面加载进度方面的接口,也就是说页面还无法准确返回页面实际加载的进度,本文中我们使用jQuery来实现页面加载进度条效果。

HTML

首先我们要知道的是,目前没有任何浏览器可以直接获取正在加载对象的大小。所以我们无法通过数据大小来实现0-100%的加载显示过程。

因此我们需要通过html代码逐行加载的特性,在整页代码的若干个跳跃行数中设置节点,进行大概的模糊进度反馈来实现进度加载的效果。大致意思是:页面每加载到指定区域,则返回(n)%的进度结果,通过设置多个节点,来达到一步一步显示加载进度的目的。

假如有一个页面,按区块分为页头、左侧内容、右边侧栏、页脚四部分,我们把这四部分作为四个节点,当页面加载每一个节点后,设置大概加载百分比,页面结构如下:

<div id="header"> 
页头部分 
</div> 
<div id="mainpage"> 
左侧内容 
</div> 
<div id="sider"> 
右边侧栏 
</div> 
<div id="footer"> 
页脚部分 
</div>

然后我们在<body>下的第一行加上进度条.loading。

<div class="loading"></div>

CSS

我们要设置loading进度条的样式,设置背景色,高度,以及位置,优先级等。

.loading{ 
 background:#FF6100; //设置进度条的颜色 
 height:5px; //设置进度条的高度 
 position:fixed; //设定进度条跟随屏幕滚动 
 top:0; //将进度条固定在页面顶部 
 z-index:99999 //提高进度条的优先层级,避免被其他层遮挡 
}

jQuery

接下来,我们要在每个节点后面加上进度动画,使用jQuery来实现。

<div id="header"> 
页头部分</div> 
<script type="text/javascript"> 
 $('.loading').animate({'width':'33%'},50); 
 //第一个进度节点 
</script> 
<div id="mainpage"> 
左侧内容 
</div> 
<script type="text/javascript"> 
 $('.loading').animate({'width':'55%'},50); 
//第二个进度节点 
</script> 
<div id="sider"> 
右边侧栏 
</div> 
<script type="text/javascript"> 
 $('.loading').animate({'width':'80%'},50); 
//第三个进度节点 
</script> 
<div id="footer"> 
页脚部分 
</div> 
<script type="text/javascript"> 
 $('.loading').animate({'width':'100%'},50); 
 //第四个进度节点 
</script>

可以看出,没加载一个节点后,jQuery调用animate()动画方法实现进度条宽度的变化,每个节点变化以50毫秒时间让进度条看起来更流畅些,最终从0%变化到100%,完成了进度条的进度动画。

当进度条达到100%后,页面加载完成,最后还有一步要做的就是隐藏进度条。

$(document).ready(function(){ 
 $('.loading').fadeOut();  
});
Javascript 相关文章推荐
一段多浏览器的&quot;复制到剪贴板&quot;javascript代码
Mar 27 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
Sep 26 Javascript
jsPDF生成pdf后在网页展示实例
Jan 16 Javascript
详解JavaScript中的every()方法
Jun 08 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
Aug 31 Javascript
JS中多种方式创建对象详解
Mar 22 Javascript
Google 地图叠加层实例讲解
Aug 06 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
Aug 30 Javascript
pc加载更多功能和移动端下拉刷新加载数据
Nov 07 Javascript
Vue方法与事件处理器详解
Dec 01 Javascript
angular.fromJson与toJson方法用法示例
May 17 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
Mar 09 Javascript
Javascript验证方法大全
Sep 21 #Javascript
JavaScript验证Email(3种方法)
Sep 21 #Javascript
基于jQuery实现多层次的手风琴效果附源码
Sep 21 #Javascript
基于insertBefore制作简单的循环插空效果
Sep 21 #Javascript
JS实现适合于后台使用的动画折叠菜单效果
Sep 21 #Javascript
jQuery实现响应鼠标滚动的动感菜单效果
Sep 21 #Javascript
JS+CSS实现简单的二级下拉导航菜单效果
Sep 21 #Javascript
You might like
php抓取页面与代码解析 推荐
2010/07/23 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
php-fpm超时时间设置request_terminate_timeout资源问题分析
2019/09/27 PHP
IE 下Enter提交表单存在重复提交问题的解决方法
2014/05/04 Javascript
JavaScript中使用Callback控制流程介绍
2015/03/16 Javascript
js解决movebox移动问题
2016/03/29 Javascript
温习Javascript基础语法之词法结构
2016/05/31 Javascript
js字符串引用的两种方式(必看)
2016/09/18 Javascript
Jquery表单验证失败后不提交的解决方法
2016/10/18 Javascript
重新理解JavaScript的六种继承方式
2017/03/24 Javascript
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
Vue2.0表单校验组件vee-validate的使用详解
2017/05/02 Javascript
jquery实现倒计时小应用
2017/09/19 jQuery
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
基于jquery实现五星好评
2017/11/18 jQuery
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
2019/04/28 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
学习python处理python编码问题
2011/03/13 Python
python使用range函数计算一组数和的方法
2015/05/07 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
Python devel安装失败问题解决方案
2020/06/09 Python
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
大学生求职中的自我评价
2013/10/01 职场文书
大四学生思想汇报
2014/01/13 职场文书
置业顾问岗位职责
2014/03/02 职场文书
学生意外伤害赔偿协议书
2014/09/17 职场文书
安全生产工作汇报
2014/10/28 职场文书
2014年镇党建工作汇报材料
2014/11/02 职场文书
2015年毕业实习工作总结
2015/05/29 职场文书
毕业设计答辩开场白
2015/05/29 职场文书