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 当前日期转化为中文的实现代码
May 13 Javascript
js工具方法弹出蒙版
May 08 Javascript
Javascript玩转继承(三)
May 08 Javascript
详解JavaScript中Date.UTC()方法的使用
Jun 12 Javascript
bootstrap-treeview自定义双击事件实现方法
Jan 09 Javascript
浅谈node的事件机制
Oct 09 Javascript
ReactNative中使用Redux架构总结
Dec 15 Javascript
使用ajax的post同步执行(实现方法)
Dec 21 Javascript
详解angular脏检查原理及伪代码实现
Jun 08 Javascript
解决webpack dev-server不能匹配post请求的问题
Aug 24 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
Apr 29 Javascript
angular异步验证防抖踩坑实录
Dec 01 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/06/10 PHP
php文件怎么打开 如何执行php文件
2011/12/21 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
2014/06/26 PHP
PHP创建多级目录的两种方法
2016/10/28 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
2016/04/27 Javascript
JavaScript 继承详解(六)
2016/10/11 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
JS利用正则表达式实现简单的密码强弱判断实例
2017/06/16 Javascript
在ABP框架中使用BootstrapTable组件的方法
2017/07/31 Javascript
vuejs事件中心管理组件间的通信详解
2017/08/09 Javascript
深入浅析Vue中的slots/scoped slots
2018/04/03 Javascript
React中嵌套组件与被嵌套组件的通信过程
2018/07/11 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
2017/07/06 Python
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
Django中reverse反转并且传递参数的方法
2019/08/06 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
python遍历文件目录、批量处理同类文件
2019/08/31 Python
python基于socket实现的UDP及TCP通讯功能示例
2019/11/01 Python
如何对python的字典进行排序
2020/06/19 Python
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
英国顶级足球鞋的领先零售商:Lovell Soccer
2019/08/27 全球购物
商场圣诞节活动总结
2015/05/06 职场文书
爱国主义教育基地观后感
2015/06/18 职场文书
PHP遍历数组的6种方式总结
2021/11/17 PHP
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB
Python first-order-model实现让照片动起来
2022/06/25 Python