自己动手制作基于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 相关文章推荐
JavaScript delete操作符应用实例
Jan 13 Javascript
调试Node.JS的辅助工具(NodeWatcher)
Jan 04 Javascript
javascript感应鼠标图片透明度显示的方法
Feb 24 Javascript
详解JavaScript中的forEach()方法的使用
Jun 08 Javascript
Js制作点击输入框时默认文字消失的效果
Sep 05 Javascript
jQuery实现form表单元素序列化为json对象的方法
Dec 09 Javascript
jQuery Validate初步体验(一)
Dec 12 Javascript
Json解析的方法小结
Jun 22 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
Jan 10 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
Nov 10 Javascript
Angular 如何使用第三方库的方法
Apr 18 Javascript
原生JS实现的雪花飘落动画效果
May 03 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实现生成透明背景的PNG缩略图函数分享
2014/07/08 PHP
php计算整个目录大小的方法
2015/06/19 PHP
8个PHP数组面试题
2015/06/23 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
2015/11/24 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
javascript实现仿银行密码输入框效果的代码
2007/12/13 Javascript
JavaScript对象模型-执行模型
2008/04/28 Javascript
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
JQuery index()方法使用代码
2010/06/02 Javascript
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
javascript禁用Tab键脚本实例
2013/11/22 Javascript
jQuery使用$.ajax进行即时验证实例详解
2015/12/11 Javascript
移动端js触摸事件详解
2016/09/18 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
antd中table展开行默认展示,且不需要前边的加号操作
2020/11/02 Javascript
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
Python新手实现2048小游戏
2015/03/31 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
2018/02/08 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
Python hashlib模块加密过程解析
2019/11/05 Python
使用 Python 读取电子表格中的数据实例详解
2020/04/17 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
我的梦想演讲稿1000字
2014/08/21 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
2015圣诞节贺卡寄语
2015/03/24 职场文书
2015年库房工作总结
2015/04/30 职场文书
我的1919观后感
2015/06/03 职场文书
2016党员学习心得体会范文
2016/01/23 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python
深入浅析React中diff算法
2021/05/19 Javascript
简单了解 MySQL 中相关的锁
2021/05/25 MySQL
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android