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 相关文章推荐
pjblog中的UBBCode.js
Apr 25 Javascript
基于JQuery的密码强度验证代码
Mar 01 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
Nov 07 Javascript
js和jquery对dom节点的操作(创建/追加)
Apr 21 Javascript
当前流行的JavaScript代码风格指南
Sep 10 Javascript
JavaScript跨平台的开源框架NativeScript
Mar 24 Javascript
移动端利用H5实现压缩图片上传功能
Mar 29 Javascript
浅析JS中什么是自定义react数据验证组件
Oct 19 Javascript
JavaScript模块管理的简单实现方式详解
Jun 15 Javascript
Node.js实现简单的爬取的示例代码
Jun 25 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
Sep 30 Javascript
vue中的计算属性和侦听属性
Nov 06 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 团购折扣计算公式
2011/11/24 PHP
用PHP代替JS玩转DOM的思路及示例代码
2014/06/15 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
php处理静态页面:页面设置缓存时间实例
2017/06/22 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
用 Javascript 验证表单(form)中的单选(radio)值
2009/09/08 Javascript
Jquery在IE7下无法使用 $.ajax解决方法
2009/11/11 Javascript
js判断登录与否并确定跳转页面的方法
2015/01/30 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
继续学习javascript闭包
2015/12/03 Javascript
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
2018/01/18 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
js中时间格式化的几种方法
2018/07/22 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
vue $set 给数据赋值的实例
2019/11/09 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
[04:51]TI10典藏宝瓶Ⅱ外观视频展示
2020/08/15 DOTA
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
Python WEB应用部署的实现方法
2019/01/02 Python
详解python运行三种方式
2019/05/13 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
2019/05/18 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
如何使用python切换hosts文件
2020/04/29 Python
大二自我鉴定范文
2013/10/05 职场文书
公司员工检讨书
2014/02/08 职场文书
小学开学典礼主持词
2014/03/19 职场文书
保护环境倡议书500字
2014/05/19 职场文书
公司董事长岗位职责
2014/06/08 职场文书
倡议书作文
2015/01/19 职场文书
交通事故赔偿起诉书
2015/05/20 职场文书
未婚证明格式
2015/06/15 职场文书
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL