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 相关文章推荐
javascript 获取select下拉列表值的代码
Sep 07 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
Sep 15 Javascript
YUI Compressor压缩JavaScript原理及微优化
Jan 07 Javascript
javascript创建数组之联合数组的使用方法示例
Dec 26 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
Sep 09 Javascript
javascript根据时间生成m位随机数最大13位
Oct 30 Javascript
JavaScript数据结构与算法之栈详解
Mar 12 Javascript
jQuery+PHP实现上传裁剪图片
Jun 29 jQuery
小程序scroll-view安卓机隐藏横向滚动条的实现详解
May 16 Javascript
VueCli3.0中集成MockApi的方法示例
Jul 05 Javascript
Vue SSR 即时编译技术的实现
May 06 Javascript
基于canvasJS在PHP中制作动态图表
May 30 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实现网站插件机制的方法
2009/11/10 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
PHP中md5()函数的用法讲解
2019/03/30 PHP
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
Prototype Class对象学习
2009/07/19 Javascript
Script的加载方法小结
2011/01/12 Javascript
JS验证身份证有效性示例
2013/10/11 Javascript
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
一个JS函数搞定网页标题(title)闪动效果
2014/05/13 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
Javascript实现网络监测的方法
2015/07/31 Javascript
JS模拟键盘打字效果的方法
2015/08/05 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
JavaScript 巧学巧用
2017/05/23 Javascript
浅谈Webpack下多环境配置的思路
2018/06/27 Javascript
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
vue移动端的左右滑动事件详解
2020/06/17 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
2020/09/12 Javascript
利用Opencv中Houghline方法实现直线检测
2018/02/11 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
python 自动识别并连接串口的实现
2021/01/19 Python
特罗佩亚包官方网站:Tropea
2017/01/03 全球购物
马来西亚网上购物:Youbeli
2018/03/30 全球购物
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
台湾演唱会订票网站:StubHub台湾
2019/06/11 全球购物
世界汽车零件:World Car Parts
2019/09/04 全球购物
网络方面基础面试题
2012/11/16 面试题
企业党员个人自我评价
2014/09/20 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
西安事变观后感
2015/06/12 职场文书
python中对列表的删除和添加方法详解
2022/02/24 Python