自己动手制作基于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 相关文章推荐
用正则获取指定路径文件的名称
Feb 27 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
Apr 18 Javascript
js实现浏览器的各种菜单命令比如打印、查看源文件等等
Oct 24 Javascript
解析Javascript中大括号“{}”的多义性
Dec 02 Javascript
javascript 表格内容排序 简单操作示例代码
Jan 03 Javascript
Javascript异步编程模型Promise模式详细介绍
May 08 Javascript
Javascript显示和隐藏ul列表的方法
Jul 15 Javascript
JavaScript截取、切割字符串的技巧
Jan 07 Javascript
js图片上传前预览功能(兼容所有浏览器)
Aug 24 Javascript
详解Koa中更方便简单发送响应的方式
Jul 20 Javascript
JS简单判断是否在微信浏览器打开的方法示例
Jan 08 Javascript
详解CocosCreator项目结构机制
Apr 14 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 Mysql类 可以参考学习熟悉下
2009/06/21 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
详解Vue爬坑之vuex初识
2017/06/14 Javascript
nodejs 子进程正确的打开方式
2017/07/03 NodeJs
详解react服务端渲染(同构)的方法
2017/09/21 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
2019/05/09 Javascript
JS数组push、unshift、pop、shift方法的实现与使用方法示例
2020/04/29 Javascript
react中hook介绍以及使用教程
2020/12/11 Javascript
Python 字典(Dictionary)操作详解
2014/03/11 Python
Python下使用Psyco模块优化运行速度
2015/04/05 Python
Python爬虫模拟登录带验证码网站
2016/01/22 Python
Python 查看文件的编码格式方法
2017/12/21 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
python利用7z批量解压rar的实现
2019/08/07 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
2019/08/15 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
2020/07/01 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
米兰必去买手店排行榜首位:Antonioli
2016/09/11 全球购物
草莓网官网:StrawberryNET
2019/08/21 全球购物
WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
2015/08/25 面试题
物流仓管员岗位职责
2013/12/04 职场文书
21岁生日感言
2014/02/27 职场文书
留学推荐信范文
2014/05/10 职场文书
助理政工师申报材料
2014/06/03 职场文书
社区党务工作总结2015
2015/05/19 职场文书
田径运动会通讯稿
2015/07/18 职场文书
编写python程序的90条建议
2021/04/14 Python
opencv用VS2013调试时用Image Watch插件查看图片
2021/07/26 Python
漫画《尖帽子的魔法工坊》宣布动画化
2022/04/06 日漫