自己动手制作基于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 相关文章推荐
jquery实现的超出屏幕时把固定层变为定位层的代码
Feb 23 Javascript
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
Dec 08 Javascript
js动态创建表格,删除行列的小例子
Jul 20 Javascript
jQuery拖拽 &amp; 弹出层 介绍与示例
Dec 27 Javascript
在Firefox下js select标签点击无法弹出
Mar 06 Javascript
javascript常用函数(2)
Nov 05 Javascript
理解javascript异步编程
Jan 27 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
Sep 17 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
Mar 01 Javascript
Vue CLI2升级至Vue CLI3的方法步骤
May 20 Javascript
CountUp.js数字滚动插件使用方法详解
Oct 17 Javascript
Nest.js参数校验和自定义返回数据格式详解
Mar 29 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下实现伪 url 的超简单方法[转]
2007/09/24 PHP
PHP 程序员的调试技术小结
2009/11/15 PHP
深入PHP autoload机制的详解
2013/06/09 PHP
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
2007/04/12 Javascript
javascript生成/解析dom的CDATA类型的字段的代码
2007/04/22 Javascript
Jquery ajaxsubmit上传图片实现代码
2010/11/04 Javascript
Grid得到选择行数据的方法总结
2011/01/17 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
Javascript实现前端简单的路由实例
2016/09/11 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
浅析Jquery操作select
2016/12/13 Javascript
jQuery实现简单的Ajax调用功能示例
2019/02/15 jQuery
Bootstrap实现模态框效果
2019/09/30 Javascript
js实现微信聊天界面
2020/08/09 Javascript
Python-基础-入门 简介
2014/08/09 Python
解析Python中的二进制位运算符
2015/05/13 Python
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
Python双精度浮点数运算并分行显示操作示例
2017/07/21 Python
python 删除大文件中的某一行(最有效率的方法)
2017/08/19 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
python+pyqt5编写md5生成器
2019/03/18 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
python实现密码强度校验
2020/03/18 Python
pandas分组聚合详解
2020/04/10 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
Python urllib request模块发送请求实现过程解析
2020/12/10 Python
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
2015/10/12 面试题
大学生实习期自我评价范文
2013/10/03 职场文书
50岁生日感言
2014/01/23 职场文书
暑期社会实践方案
2014/02/05 职场文书