网页加载进度条的JS程序开发思路与实际应用

一款好的产品,都需要有一个漂亮的loading界面。lodaing界面不仅能给用户带来良好的体验,而且有效的消除了程序加载等待过程中的枯躁感。 loading进度条更是对当前加载进度的一个良好反馈。从0%-100%的加载进度可以有效的告知用户还有多久即可打开页面。
带有进度条的loading界面在程序中并不罕见,但是在web中呢?到目前为止浏览器并没有提供有效的浏览器对象来反馈页面的加载进度,所以无法直接、便捷的获得页面加载进度的反馈。
本文主要是讲述如何以通过jquery的方式来实现页面加载进度的反馈方法。
一、实现逻辑与概念
首先我们要知道的是,目前没有任何浏览器可以直接获取正在加载对象的大小。所以我们无法通过数据大小来实现0-100%的加载显示过程。
所以我们需要采取加载节点来反馈页面已经加载到某一段,进行大概的模糊进度反馈来实现进度加载的效果。大致意思是:页面每加载到指定区域,则返回(n)%的进度结果,通过设置多个节点,来达到一步一步显示加载进度的目的。
具体是如何设置呢?首先我们将网页分成若干区域,就以 frontopen来说,网站的结构分为head区域、mian区域(文章主体部分)、sidebar侧边栏、foot脚部 四个部分。考虑做一个范围粗犷一点 进度反馈效果。如下图:
将进度反馈设置为四个部分:head部分返回30%进度,main部分返回60%进度,sidebar部分返回70%进度,最后foot加载完成后返回100%。
二、实现方法
1.首先我们需要在html页面中,给进度条设定设定一个容器。例如本博的body下方会有一个“<div class=”loading”></div>”的div容器,这就是后面我们需要操作并显示的进度条了,当然大家有兴趣的话可以设置更多有个性的进度条。
2.为loading容器设定样式,以本博的进度条为例,样式如下:
.loading{
    background:#FF6100; //设置进度条的颜色
    height:5px; //设置进度条的高度
    position:fixed; //设定进度条跟随屏幕滚动
    top:0; //将进度条固定在页面顶部
    z-index:99999  //提高进度条的优先层级,避免被其他层遮挡
}
3.通过jquery的animate动画效果,来实现进度条的动画加载过程。简单的进行构思,决定使用由左向右的加载效果。最终animate的执行代码为“$(‘.loading’).animate({‘width’:’100%’},200);”
4.思考需要设置几个加载进度节点。上面通过构思,我们已经决定使用30%、60%、70%、100%四个进度节点,分别插入到对应的页面位置。并结合上面的animate动画代码,最终确定四个进度节点的代码为:$(‘.loading’).animate({‘width’:’30%’},50) 、 $(‘.loading’).animate({‘width’:’60%’},50) 、 $(‘.loading’).animate({‘width’:’70%’},50) 、 $(‘.loading’).animate({‘width’:’100%’},50)。 可能大家会问,为什么速度变成了50毫秒?因为之前一步加载为100%的动画被分成份,所以为了保证动画的连贯性,将其每份切分成为50毫秒。
三、插入到页面中的实际应用示例
以本博模板首页文件index.php为例,给大家展示四个节点如何插入到对应的位置。当然这个示例只是为了更好的解释上面的程序策划结论,并不限于这种设置方法。大家在需要的地方可以发挥更多的想象,举一反三创造出更绚丽的样式。
index.php文件代码

<?php
/**
 * The main template file.
 *
 * This is the most generic template file in a WordPress theme
 * and one of the two required files for a theme (the other being style.css).
 * It is used to display a page when nothing more specific matches a query.
 * E.g., it puts together the home page when no home.php file exists.
 * Learn more: http://codex.wordpress.org/Template_Hierarchy
 *
 * @package WordPress
 * @subpackage Twenty_Ten
 * @since Twenty Ten 1.0
 */
ini_set(‘display_errors‘, false);  //关闭报错

get_header(); ?>  //引用模板的头部PHP文件
<script type="text/javascript">
        $(‘.loading‘).animate({‘width‘:‘33%‘},50);  //第一个进度节点
</script>

  <div class="main">
     <?php
     /* Run the loop to output the posts.
     * If you want to overload this in a child theme then include a file
     * called loop-index.php and that will be used instead.
     */
        get_template_part( ‘loop‘, ‘index‘ );
     ?>
  </div><!-- #main -->
<script type="text/javascript">
$(‘.loading‘).animate({‘width‘:‘55%‘},50);  //第二个节点
</script>
<?php get_sidebar(); ?>  //引用sidebar模板php文件
<script type="text/javascript">
        $(‘.loading‘).animate({‘width‘:‘78%‘},50);  //第三个节点
</script>
<?php get_footer(); ?>  //引用foot模板php文件
<script type="text/javascript">
        $(‘.loading‘).animate({‘width‘:‘100%‘},50);  //第四个节点
</script>

四、程序的补充完善与优化
通过上面三步、已经基本可以完成整个loading程序的运行。但是进度条加载完成后,无法自动消失?这当然是不行的了,因此我们需要使用另外一段代码,在文档加载完成后将进度条隐藏。
代码如下:

$(document).ready(function(){
    $(‘.loading‘).fadeOut();
});

通过以上设置,即可当页面100%加载完成后,执行jquery的fadeOut函数,将进度条隐藏,完成整个程序的收尾。
结语:本文考虑到便于读者学习,将代码尽可能的简化。当然,这个实例也可以满足多数情况下的应用了。希望读者能够通过此实例拓展思路,开发出更加优秀、更加强大的功能。

时间: 2024-10-08 14:36:25

网页加载进度条的JS程序开发思路与实际应用的相关文章

HTML5 CSS3 诱人的实例 : 网页加载进度条的实现,下载进度条等

今天给大家带来一个比较炫的进度条,进度条在一耗时操作上给用户一个比较好的体验,不会让用户觉得在盲目等待,对于没有进度条的长时间等待,用户会任务死机了,毫不犹豫的关掉应用:一般用于下载任务,删除大量任务,网页加载等:如果有使用html5为手机布局的,也可以用于手机中~ 效果图: 1.html结构: <div id="loadBar01" class="loadBar"> <div> <span class="percent&qu

Chromium中网页加载进度条研究

1.     Shell.java中有成员变量:mProgressDrawable. 该成员变量在方法:onFinishInflate中被初始化. 在该类中有方法:onLoadProgressChanged,该方法中对进度条的值进行改变,并且对刷新完成事件进行反馈. 2.     上面的这个方法是在cc文件中被调用的. 上面方法对应的cc方法是shell_android.cc文件中的LoadProgressChanged方法. voidShell::LoadProgressChanged(Web

网页加载进度条

( 网页加载时,有时内容过多,一直加载等待,而此时网页显示白色不显示任何的东西,给用户的体验相当不好,所以,一般会在网页加载成功前,会以进度条的形式,给用户进行展示.让用户可以看到动画,知道网页正在加载中) 常见的方式有以下: 1. 定时器的进度条(假的) <script type="text/javascript">     $(function(){         var loading='<div class="loading">&l

网页加载进度条的实现

本次主要介绍一下网页加载进度的实现.如下图,在页面加载的时候,上方红色的进度条 网页加载进度的好处是能够更好的反应当前网页的加载进度情况,loading进度条可用动画的形式从开始0%到100%完成网页加载这一过程.但是目前的浏览器并没有提供页面加载进度方面的接口,也就是说页面还无法准确返回页面实际加载的进度,本文中我们使用jQuery来实现页面加载进度条效果. 首先我们要知道的是,目前没有任何浏览器可以直接获取正在加载对象的大小.所以我们无法通过数据大小来实现0-100%的加载显示过程. 因此我

网站顶部显示预加载进度条preload.js

网站加载的速度快的话,不会显示进度条加载时候的样式. 支持性主流浏览器都支持,ie浏览器需要9以上9也支持. 使用方法 <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> <script src="js/preload.js"></script> <script type="text/javascript">

【css系列】创建网页加载进度条

一.最简单或者明显的方式是使用定时器 1.在网页中加入布局覆盖真实网页内容 2.使用定时器确定加载所用时间的长短,其实并不是真正的加载进度实现 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>定时器的进度条</title> <script src="../js/jquery-3.2.1.j

iOS WKWebView添加网页加载进度条(转)

一.效果展示 WKWebProgressViewDemo.gif 二.主要步骤 1.添加UIProgressView属性 @property (nonatomic, strong) WKWebView *wkWebView; @property (nonatomic, strong) UIProgressView *progressView; 2.初始化progressView - (void)viewDidLoad { [super viewDidLoad]; //进度条初始化 self.pr

Jquery网页加载进度条(随笔,当然要随便写,当日记动态心情写咯)

首先先是吐槽时间... 告诉大家一个好消息,就是有个妹子非常仰慕我的前端技术说要包养我 然后有好多羡慕嫉妒恨的童鞋一定要说,少年你太天真了,那一定是HR 然后我表示她不是HR,本宅的春天貌似要到来了...T_T,25年的单身生涯.终于走到了尽头......然后妹子也是前端...为了保证光辉形象.我必要努力提升技术 然后么今天闲的蛋疼,再看看一帮大牛们的装逼网站,然后无意间看到这一段,只想说大牛们的世界真会玩.... 利用图片上data,还有load 最后在用document.readyState

webview添加网页加载进度条

最近在android项目中使用webview嵌套了一个抽奖活动网页,活动上线,运行良好(改了N次需求和突发bug),还好这种模式的活动,只需要修改网页,不需要重新打包发布市场,这也是这种模式开发的优势之一.后来据产品哥反馈说加载网页无进度提示,好吧,这个当时真没考虑这么多,这个要加加..想当然以为轻松搞定之....其实还是比轻松要复杂点... 1.首先自定义一个WebView控件 1 /** 2 * 带进度条的Webivew 3 * @author [email protected] 4 */