自己动手制作基于jQuery的Web页面加载进度条插件


Posted in Javascript onJune 03, 2016

静态效果的实现

网页顶部加载进度条,近年来很流行,很多网站都采用了这种加载方式。网上也有这样类似的插件,今天我们总结一下网页顶部线性页面加载进度条。
大体的写法如下:

body{
        margin:0;
      }
      #progress {
        position:fixed;
        height: 2px;
        background:#2085c5;
        transition:opacity 500ms linear
      }
      #progress.done {
        opacity:0
      }
      #progress span {
        position:absolute;
        height:2px;
        -webkit-box-shadow:#2085c5 1px 0 6px 1px;
        -webkit-border-radius:100%;
        opacity:1;
        width:150px;
        right:-10px;
        -webkit-animation:pulse 2s ease-out 0s infinite;
      }

      @-webkit-keyframes pulse {
        30% {
          opacity:.6
        }
        60% {
          opacity:0;
        }
        100% {
          opacity:.6
        }
}

html代码:

<div id="progress">
      <span></span>
</div>

jquery代码:

$({property: 0}).animate({property: 100}, {
        duration: 3000,
        step: function() {
          var percentage = Math.round(this.property);

          $('#progress').css('width', percentage+"%");

           if(percentage == 100) {
              $("#progress").addClass("done");//完成,隐藏进度条
            }
        }
});

设定其持续时间是3秒钟!你可以改动一下,把3秒钟的时间改成你网页的加载时间,就可以做出网页动态加载进度条了。。

页面加载插件的实际应用及load函数的运用
关于页面的加载,很难找到一个很好的方法来获取页面的实际下载进度。下面介绍的方法是运用 $(window).load(function() {})和$(document).ready(function(){})来进行的,虽然这种方法不是很准确,但是也可以模拟网页的下载。

$(function(){
NProgress.start();
})

$(window).load(function() {
  NProgress.done();
})

有很多朋友可能对 $(window).load(function() {})和$(document).ready(function(){})的区别不是很了解。大家可以写一个小案例来测试一下!

例如:

$(window).load(function() {
  alert("我是load")
})
$(function(){
 alert("我是document.ready")
})

很明显,肯定是document.ready先执行,因为document.ready是在DOM结构载入完后执行的,不需要载入得这么“完全”,而$(window).load则是页面全部内容加载完成后执行的。

有时候,

$(window).load(function() {
  alert("我是load")
})

也可以用js的写法:

window.onload = function(){ ... }

都是在页面全部下载完成之后来执行的。两种写法是等价的!

Javascript 相关文章推荐
在线游戏大家来找茬II
Sep 30 Javascript
js的写法基础分析
Jan 17 Javascript
JavaScript 图像动画的小demo
May 23 Javascript
Javascript实现多彩雪花从天降散落效果的方法
Feb 02 Javascript
js绘制圆形和矩形的方法
Aug 05 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
Aug 26 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
Apr 14 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
Jun 23 Javascript
javascript中sort排序实例详解
Jul 24 Javascript
图解prototype、proto和constructor的三角关系
Jul 31 Javascript
微信接入之获取用户头像的方法步骤
Sep 23 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
Sep 27 Javascript
JS实现图片的不间断连续滚动的简单实例
Jun 03 #Javascript
Ionic实现页面下拉刷新(ion-refresher)功能代码
Jun 03 #Javascript
js不间断滚动的简单实现
Jun 03 #Javascript
Ionic如何创建APP项目
Jun 03 #Javascript
Ionic快速安装教程
Jun 03 #Javascript
Ionic如何实现下拉刷新与上拉加载功能
Jun 03 #Javascript
简单了解JavaScript操作XPath的一些基本方法
Jun 03 #Javascript
You might like
Dedecms常用函数解析
2008/02/01 PHP
PHP中strtotime函数使用方法详解
2011/11/27 PHP
php switch语句多个值匹配同一代码块的实现
2014/03/03 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
2017/03/15 PHP
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
基于jQuery的遍历同id元素 并响应事件的代码
2012/06/14 Javascript
JavaScript 反科里化 this [译]
2012/09/20 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
Angularjs中使用Filters详解
2016/03/11 Javascript
JS简单实现数组去重的方法分析
2017/10/14 Javascript
利用angular自动编译andriod APK的绕坑经历分享
2019/03/08 Javascript
[01:09:01]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第一场 10.28
2020/10/28 DOTA
python简单实现刷新智联简历
2016/03/30 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
flask框架路由常用定义方式总结
2019/07/23 Python
PyTorch实现更新部分网络,其他不更新
2019/12/31 Python
python 工具 字符串转numpy浮点数组的实现
2020/03/14 Python
Python爬取网页信息的示例
2020/09/24 Python
python 利用Pyinstaller打包Web项目
2020/10/23 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
网页布局中CSS样式无效的十个重要原因详解
2017/08/10 HTML / CSS
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
我的网上商城创业计划书
2013/12/26 职场文书
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
工商治理实习生的自我评价分享
2014/02/20 职场文书
好听的队名和口号
2014/06/09 职场文书
公司董事长助理工作职责
2014/07/12 职场文书
社区文艺活动方案
2014/08/19 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
千手观音观后感
2015/06/03 职场文书
学校运动会简讯
2015/07/20 职场文书
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA
windows server2008 开启端口的实现方法
2022/06/25 Servers