自己动手制作基于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 相关文章推荐
解决json日期格式问题的3种方法
Feb 02 Javascript
IE中JS跳转丢失referrer问题的2个解决方法
Jul 18 Javascript
EasyUI中datagrid在ie下reload失败解决方案
Mar 09 Javascript
详解使用vue实现tab 切换操作
Jul 03 Javascript
Angular2 自定义validators的实现方法
Jul 05 Javascript
vue.js全局API之nextTick全面解析
Jul 07 Javascript
浅谈在fetch方法中添加header后遇到的预检请求问题
Aug 31 Javascript
关于vue中 $emit的用法详解
Apr 12 Javascript
详解html-webpack-plugin插件(用法总结)
Sep 12 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
Oct 19 Javascript
详解Vue.js中引入图片路径的几种方式
Jun 17 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
Aug 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
php利用scws实现mysql全文搜索功能的方法
2014/12/25 PHP
php中session定期自动清理的方法
2015/11/12 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
2017/06/06 PHP
jscript之List Excel Color Values
2007/06/13 Javascript
JavaScript CSS修改学习第一章 查找位置
2010/02/19 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
最原始的jQuery注册验证方式
2016/10/11 Javascript
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
2016/12/19 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
详解vue挂载到dom上会发生什么
2019/01/20 Javascript
[02:38]DOTA2超级联赛专访Loda 认为IG世界最强
2013/05/27 DOTA
[25:45]2018DOTA2亚洲邀请赛4.5SOLO赛 Sylar vs Paparazi
2018/04/06 DOTA
Django框架下在视图中使用模版的方法
2015/07/16 Python
Python实现简单的代理服务器
2015/07/25 Python
彻底搞懂Python字符编码
2018/01/23 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
python3实现域名查询和whois查询功能
2018/06/21 Python
Python中使用遍历在列表中添加字典遇到的坑
2019/02/27 Python
python文字转语音实现过程解析
2019/11/12 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
2020/02/11 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
施华洛世奇加拿大官网:SWAROVSKI加拿大
2018/06/03 全球购物
英国领先的隐形眼镜在线供应商:Lenstore.co.uk
2019/11/24 全球购物
护理专业优质毕业生自荐书
2014/01/31 职场文书
店长职务说明书
2014/02/04 职场文书
幼儿园八一建军节活动方案
2014/08/27 职场文书
2015大一新生军训感言
2015/08/01 职场文书
用Python实现Newton插值法
2021/04/17 Python