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 相关文章推荐
js操作label给label赋值及取label的值示例
Nov 07 Javascript
jquery插件splitScren实现页面分屏切换模板特效
Jun 16 Javascript
jQuery多条件筛选如何实现
Nov 04 Javascript
购物车前端开发(jQuery和bootstrap3)
Aug 27 Javascript
vue中渐进过渡效果实现
Oct 27 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
Jan 16 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
Dec 25 Javascript
详解swiper在vue中的应用(以3.0为例)
Sep 20 Javascript
VUE安装使用教程详解
Jun 03 Javascript
JSX在render函数中的应用详解
Sep 04 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
Oct 27 Javascript
Bootstrap FileInput实现图片上传功能
Jan 28 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 token使用与验证示例【测试可用】
2017/08/30 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
Div Select挡住的解决办法
2008/08/07 Javascript
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
JavaScript函数定义的常见注意事项小结
2014/09/16 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
JS+CSS实现滑动切换tab菜单效果
2015/08/25 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
Node.js的Web模板引擎ejs的入门使用教程
2016/06/06 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
vue 点击按钮实现动态挂载子组件的方法
2018/09/07 Javascript
javaScript实现游戏倒计时功能
2018/11/17 Javascript
微信小程序实现搜索框功能及踩过的坑
2020/06/19 Javascript
解决vue init webpack 下载依赖卡住不动的问题
2020/11/09 Javascript
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
python标准日志模块logging的使用方法
2013/11/01 Python
python 内置函数filter
2017/06/01 Python
Python数据分析之获取双色球历史信息的方法示例
2018/02/03 Python
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
Python实现手绘图效果实例分享
2020/07/22 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
2020/09/01 Python
python实现图片素描效果
2020/09/26 Python
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
美国首屈一指的礼品篮供应商:GiftTree
2018/01/06 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
serialVersionUID具有什么样的特征
2014/02/20 面试题
英语专业学生个人求职信
2014/01/28 职场文书
小学体育教学反思
2014/01/31 职场文书
个人剖析材料范文
2014/09/30 职场文书
2014收银员工作总结范文
2014/12/16 职场文书
运动会3000米加油稿
2015/07/21 职场文书
PyQt5 显示超清高分辨率图片的方法
2021/04/11 Python
教你怎么用Python实现多路径迷宫
2021/04/29 Python
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript