pace.js – 网页自动加载进度条插件

分类栏目:用户体验 - 前端开发

122072

发布于 36 条评论

之前有很多同学询问觉唯网站顶部的页面加载进度条是怎么实现的,页面的加载进度百分比,有时候获取是比较麻烦的,当然也可以利用一些优秀的JavaScript插件来实现,今天就为大家介绍这样子的一款插件:pace.js

pace js 缩略图

在页面中引入Pace.js,页面就会自动监测你的请求(包括Ajax请求),在事件循环滞后,会在页面记录加载的状态以及进度情况。此插件的兼容性很好,可以兼容IE8以上的所有主流插件,而且其强大之处在于,你还可以引入加载进度条的主题样式,你可以选择任意颜色和多种动画效果(例如简约、闪光灯,MAC OSX,左侧填充,顶部填充,计数器和弹跳等等动画效果),如果你擅长修改css动画,那你就可以做出无限种可能性的动画,为你的网站增添个性化特色!

查看官网下载附件

使用方法

引入Pace.js以及主题文件即可:

<head>
  <script src="/pace/pace.js"></script>
  <link href="/pace/themes/pace-theme-barber-shop.css" rel="external nofollow"  rel="external nofollow"  rel="stylesheet" />
</head>

自定义配置

Pace.js会自动加载到页面中,不需要挂接到任何代码,会自动检测进度。如果你想做一些调整,你可以设置window.paceOptions来自定义配置:

  paceOptions = {
  // Disable the 'elements' source
  elements: false,
  
  // Only show the progress on regular and ajax-y page navigation,
  // not every request
  restartOnRequestAfter: false
  }

你也可以将自定义设置放到script标签内,例如:

<script data-pace-options='{ "ajax": false }' src='pace.js'></script>

如果你使用AMD或者Browserify来加载模块的话,你可以通过这样子来设置(例如:start):

define(['pace'], function(pace){
  pace.start({
    document: false
  });
});

使用API

Pace.js公开的API列表:

  • Pace.start:开始显示进度条,如果你不是使用AMD或者Browserify来加载模块的话,这个会默认执行。
  • Pace.restart:进度条重新加载以及显示。
  • Pace.stop:隐藏进度条以及停止加载。
  • Pace.track:监测一个或者多个请求任务。
  • Pace.ignore:忽略一个或者多个请求任务。

官网演示下载

基本上大致使用方法就这些,还有其他的一些方法的使用,各位就前往到官网去查看更加详细的介绍。希望这个插件可以帮助到大家!

查看官网下载附件

全部评论 / 36

  1. believe

    站长你好,怎样在一个页面内,循环使用进度条,看了API没弄出来

    believe 2014-09-28
    20
  2. ExtraOrdinary丶

    怎么让进度条跑完后不隐藏?

    ExtraOrdinary丶 2014-09-28
    19
  3. 夜凝工作室

    站长你好,我用了这个插件,不显示进度条,但是从代码上看js已经执行了,
    页面加载完多了一个div,相关的样式我也已经引用了,求指导!

    夜凝工作室 2014-09-28
    18
  4. 朝夕

    站长,你知道这个代码怎么放到css里面吗 这个是加载完显示页面的选项 文件install.json :::::::::: “if”: “options.hidePage”,
    “contents”: “body > *:not(.pace), body:before, body:after { -webkit-transition: opacity .4s ease-in-out; -moz-transition: opacity .4s ease-in-out; -o-transition: opacity .4s ease-in-out; -ms-transition: opacity .4s ease-in-out; transition: opacity .4s ease-in-out } body:not(.pace-done) > *:not(.pace), body:not(.pace-done):before, body:not(.pace-done):after { opacity: 0 }”

    朝夕 2014-09-28
    17
  5. 朝夕

    这个肯定有定义的,只是我实在是看不懂啊 拜托了

    朝夕 2014-09-28
    16
    1. Javin

      刚刚去看了,没看到你说的那个选项。用这个方式就可以实现你要的效果:
      Pace.on(“done”, function(){
      $(“.cover”).fadeOut(2000);
      });

      1号 Javin 2014-09-28
      1. 朝夕

        这个东西加在哪啊

        朝夕 2014-09-28
  6. 朝夕

    大哥你能帮我查一下pacejs里面的 先显示进度条,然后进度条消失,网站出现这个选项吗

    朝夕 2014-09-28
    15
  7. 朝夕

    请问如何做到。 Hide everything but PACE until the page has fully loaded

    朝夕 2014-09-28
    14
    1. Javin

      可以试下:
      Pace.on(“done”, function(){
      $(“.cover”).fadeOut(2000);
      });
      其实就是通过css隐藏,然后等待pace加载完成就显示出来。

      1号 Javin 2014-09-28
      1. 朝夕

        官网有个选项 Hide everything but PACE until the page has fully loaded我点了之后,就能实现这个效果,我想把js加到本地,就不会改了

        朝夕 2014-09-28
        1. Javin

          你可以认真查看官网的js以及css文件。原理都是通过css来控制。

          1号 Javin 2014-09-28
      2. 朝夕

        本地没有pace应该有开启关闭这个选项的选项吧

        朝夕 2014-09-28
  8. 这个挺实用。觉唯设计希望越做越好

    13
  9. 关于这个,我写个一篇文章 http://www.haorooms.com/post/js_jiazao_load

    12
  10. 做设计的网站就是不一样,好有温暖的感觉 ;-)

    11
  11. 好啊

    asdasd 2014-09-28
    10
  12. 博主傍晚好!不经意路过,留言是种美德,同时证明我来过。欢迎回访!

    9
  13. 我又来看你啦。

    8
  14. 网站很漂亮

    7
  15. 果断收藏了

    你我觅 2014-09-28
    6
  16. 虽然是个不起眼的小插件,但用户体验方面很好 :idea:

    5
    1. Javin

      的确,有时候会带来很多好处的。

      1号 Javin 2014-09-28
  17. 可能是最简单的博客ajax化方法了

    4
    1. 这其实还没有 AJAX 化,只是伪装。最简单的看 InstantClick。

      锦程 2014-09-28
      1. Javin

        这个不错。

        1号 Javin 2014-09-28
  18. nice,收了!

    3
  19. 不错哦

    酱紫 2014-09-28
    2
  20. 好强大,先收藏了。以前一直想找这样子的一个进度条。 :razz:

    大小姐 2014-09-28
    1