jquery网页加载进度条的实现


Posted in jQuery onJune 01, 2017

本次主要介绍一下网页加载进度的实现。如下图,在页面加载的时候,上方红色的进度条

jquery网页加载进度条的实现

网页加载进度的好处是能够更好的反应当前网页的加载进度情况,loading进度条可用动画的形式从开始0%到100%完成网页加载这一过程。但是目前的浏览器并没有提供页面加载进度方面的接口,也就是说页面还无法准确返回页面实际加载的进度,本文中我们使用jQuery来实现页面加载进度条效果。

首先我们要知道的是,目前没有任何浏览器可以直接获取正在加载对象的大小。所以我们无法通过数据大小来实现0-100%的加载显示过程。

因此我们需要通过html代码逐行加载的特性,在整页代码的若干个跳跃行数中设置节点,进行大概的模糊进度反馈来实现进度加载的效果。大致意思是:页面每加载到指定区域,则返回(n)%的进度结果,通过设置多个节点,来达到一步一步显示加载进度的目的。

假如有一个页面,按区块分为页头、左侧内容、右边侧栏、页脚四部分,我们把这四部分作为四个节点,当页面加载每一个节点后,设置大概加载百分比,页面结构如下:

<div id="header"> 
页头部分 
</div> 
<div id="mainpage"> 
左侧内容 
</div> 
<div id="sider"> 
右边侧栏 
</div> 
<div id="footer"> 
页脚部分 
</div>

然后我们在下的第一行加上进度条.loading。

<div class="loading"></div>

我们要设置loading进度条的样式,设置背景色,高度,以及位置,优先级等。

.loading{ 
  background:#FF6100; //设置进度条的颜色 
  height:5px; //设置进度条的高度 
  position:fixed; //设定进度条跟随屏幕滚动 
  top:0; //将进度条固定在页面顶部 
  z-index:99999 //提高进度条的优先层级,避免被其他层遮挡 
}

接下来,我们要在每个节点后面加上进度动画,使用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();   
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jquery实现全选、全不选以及单选功能
Mar 23 jQuery
jquery.masonry瀑布流效果
May 25 jQuery
jQuery 表单序列化实例代码
Jun 11 jQuery
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
jQuery EasyUI window窗口使用实例代码
Dec 25 jQuery
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
Jan 25 jQuery
jQuery实现鼠标移到某个对象时弹出显示层功能
Aug 23 jQuery
jQuery 操作 HTML 元素和属性的方法
Nov 12 jQuery
jQuery基于随机数解决中午吃什么去哪吃问题示例
Dec 29 jQuery
jquery实现选项卡切换代码实例
May 14 jQuery
jquery插件开发模式实例详解
Jul 20 jQuery
jquery实现吸顶导航效果
Jan 08 jQuery
jQuery+Ajax实现用户名重名实时检测
Jun 01 #jQuery
jQuery实现动态删除LI的方法
May 30 #jQuery
jQuery异步提交表单实例
May 30 #jQuery
Angular2使用jQuery的方法教程
May 28 #jQuery
Jquery中attr与prop的区别详解
May 27 #jQuery
jQuery插件imgAreaSelect基础讲解
May 26 #jQuery
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
May 26 #jQuery
You might like
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
关于PHP开发的9条建议
2015/07/27 PHP
orm获取关联表里的属性值
2016/04/17 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
对YUI扩展的Gird组件 Part-2
2007/03/10 Javascript
JQuery 写的个性导航菜单
2009/12/24 Javascript
Javascript 中的类和闭包
2010/01/08 Javascript
JavaScript单元测试ABC
2012/04/12 Javascript
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
jQuery实现动画效果的简单实例
2014/01/27 Javascript
纯js实现无限空间大小的本地存储
2015/06/18 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
javascript如何写热点图
2015/12/08 Javascript
JSONP跨域请求实例详解
2016/07/04 Javascript
React Native实现简单的登录功能(推荐)
2016/09/19 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
jQuery实现高级检索功能
2019/05/28 jQuery
JS学习笔记之数组去重实现方法小结
2019/05/29 Javascript
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
Python模块学习 re 正则表达式
2011/05/19 Python
Python中无限元素列表的实现方法
2014/08/18 Python
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
Python判断对象是否为文件对象(file object)的三种方法示例
2019/04/26 Python
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
中级会计职业生涯规划范文
2014/01/16 职场文书
小学班长竞选演讲稿
2014/04/24 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
小学优秀班主任材料
2014/12/17 职场文书
留学推荐信英文范文
2015/03/26 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书