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 相关文章推荐
基于jquery的可多选的下拉列表框
Jul 20 Javascript
ajax上传时参数提交不更新等相关问题
Dec 11 Javascript
JavaScript中关联原型链属性特性
Feb 13 Javascript
浅谈JavaScript for循环 闭包
Jun 22 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
Oct 10 Javascript
微信开发 js实现tabs选项卡效果
Oct 28 Javascript
Bootstrap页面缩小变形的快速解决办法
Feb 03 Javascript
jQuery无冲突模式详解
Jan 17 jQuery
vue.js的vue-cli脚手架中使用百度地图API的实例
Jan 21 Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
Apr 09 Javascript
在vue中使用console.log无效的解决
Aug 09 Javascript
vue+node 实现视频在线播放的实例代码
Oct 19 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/23 PHP
php查找字符串出现次数的方法
2014/12/01 PHP
PHP函数func_num_args用法实例分析
2015/12/07 PHP
php实现36进制与10进制转换功能示例
2017/01/10 PHP
2010年最佳jQuery插件整理
2010/12/06 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
js中生成map对象的方法
2014/01/09 Javascript
Javascript异步编程模型Promise模式详细介绍
2014/05/08 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
在JavaScript中对HTML进行反转义详解
2016/05/18 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
ionic实现带字的toggle滑动组件
2016/08/27 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
jQuery为DOM动态追加事件的方法
2017/02/16 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
2017/07/27 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
新手快速入门JavaScript装饰者模式与AOP
2019/06/24 Javascript
python中cPickle用法例子分享
2014/01/03 Python
详解python爬虫系列之初识爬虫
2019/04/06 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
django中的数据库迁移的实现
2020/03/16 Python
python文件操作seek()偏移量,读取指正到指定位置操作
2020/07/05 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
详解查看Python解释器路径的两种方式
2020/10/15 Python
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
美国克罗格超市在线购物:Kroger
2019/06/21 全球购物
Notino罗马尼亚网站:购买香水和化妆品
2019/07/20 全球购物
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
波兰多品牌运动商店:StreetStyle24.pl
2020/09/22 全球购物
标记环网Toke Ring IEEE802.5
2014/05/26 面试题
毕业生求职信范文
2014/06/29 职场文书
党员评议思想汇报
2014/10/08 职场文书
五星级酒店宣传口号
2015/12/25 职场文书
高中生物教学反思
2016/02/20 职场文书