自己动手制作基于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 相关文章推荐
moment.js轻松实现获取当前日期是当年的第几周
Feb 05 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
Dec 25 Javascript
谈谈JavaScript类型系统之Math
Jan 06 Javascript
理解javascript中的严格模式
Feb 01 Javascript
Vue.js路由vue-router使用方法详解
Mar 20 Javascript
angular.extend方法的具体使用
Sep 14 Javascript
vue-cli的eslint相关用法
Sep 29 Javascript
JS实现中文汉字按拼音排序的方法
Oct 09 Javascript
再谈Angular4 脏值检测(性能优化)
Apr 23 Javascript
jsonp跨域获取数据的基础教程
Jul 01 Javascript
js 计算图片内点个数的示例代码
Apr 04 Javascript
javascript 易错知识点实例小结
Apr 25 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
PHP教程 基本语法
2009/10/23 PHP
利用php获取服务器时间的实现代码
2013/06/07 PHP
PHP判断远程图片或文件是否存在的实现代码
2014/02/20 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
PHP获取ttf格式文件字体名的方法示例
2019/03/06 PHP
jQuery 图像裁剪插件Jcrop的简单使用
2009/05/22 Javascript
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
jquery实现弹窗功能(窗口居中显示)
2017/02/27 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
2017/06/04 Javascript
Bootstrap table使用方法记录
2017/08/23 Javascript
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
关于vue-cli3打包代码后白屏的解决方案
2020/09/02 Javascript
vue实现轮播图帧率播放
2021/01/26 Vue.js
从零学Python之入门(四)运算
2014/05/27 Python
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
Pretty Green美国:英式摇滚服饰风格代表品牌之一
2019/01/23 全球购物
物流管理专业应届生求职信
2013/11/21 职场文书
经典商业广告词
2014/03/13 职场文书
校外活动方案
2014/08/28 职场文书
基石观后感
2015/06/12 职场文书
合理缓解职场压力,让你随时保持最佳状态!
2019/06/21 职场文书
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
在CSS中使用when/else的方法
2022/01/18 HTML / CSS
springboot为异步任务规划自定义线程池的实现
2022/06/14 Java/Android