网页进度条能够更好的反应当前网页的加载进度情况,loading 进度条可用动画的形式从开始 0% 到 100% 完成网页加载这一过程。代码简单易懂,效果非常好,需要的一起学习学习吧
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
网页进度条能够更好的反应当前网页的加载进度情况,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
接下来,我们要在每个节点后面加上进度动画,使用 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();
- });
来源: