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 相关文章推荐
动态标签 悬停效果 延迟加载示例代码
Nov 21 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
Jan 02 Javascript
jquery统计输入文字的个数并对其进行判断
Jan 07 Javascript
jQuery实现鼠标经过图片预览大图效果
Apr 10 Javascript
浅谈JavaScript中的string拥有方法的原因
Aug 28 Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
Oct 24 Javascript
vuex页面刷新后数据丢失的方法
Jan 17 Javascript
JavaScript的查询机制LHS和RHS解析
Aug 16 Javascript
vue项目部署到nginx/tomcat服务器的实现
Aug 26 Javascript
vue.js this.$router.push获取不到params参数问题
Mar 03 Javascript
原生js实现瀑布流效果
Mar 09 Javascript
JS实现炫酷雪花飘落效果
Aug 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中大于2038年时间戳的问题处理方案
2015/03/03 PHP
四个PHP非常实用的功能
2015/09/29 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
浅析jQuery的链式调用之each函数
2010/12/03 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
jQuery操作JSON的CRUD用法实例
2015/02/25 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
jQuery实现的网页左侧在线客服效果代码
2015/10/23 Javascript
html判断当前页面是否在iframe中的实例
2016/11/30 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
2017/01/23 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
jQuery鼠标移动图片上实现放大效果
2017/06/25 jQuery
浅谈react.js中实现tab吸顶效果的问题
2017/09/06 Javascript
vue父子组件的嵌套的示例代码
2017/09/08 Javascript
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
Python中用Spark模块的使用教程
2015/04/13 Python
Python向日志输出中添加上下文信息
2017/05/24 Python
Tornado 多进程实现分析详解
2018/01/12 Python
破解安装Pycharm的方法
2018/10/19 Python
java中的控制结构(if,循环)详解
2019/06/26 Python
python实现Pyecharts实现动态地图(Map、Geo)
2020/03/25 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
常用的10个Python实用小技巧
2020/08/10 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
阿里云:Aliyun.com
2017/02/15 全球购物
高街生活方式全球在线商店:AZBRO
2017/08/26 全球购物
爱岗敬业演讲稿
2014/05/05 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
公司租车协议书
2015/01/29 职场文书
Mysql服务添加 iptables防火墙策略的方案
2021/04/29 MySQL