自己动手制作基于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的插件教程(Plugin)
Sep 03 Javascript
div移动 输入框不能输入的问题
Nov 19 Javascript
Jquery 快速构建可拖曳的购物车DragDrop
Nov 30 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
Dec 12 Javascript
JS对象转换为Jquery对象实现代码
Dec 29 Javascript
javascript中this用法实例详解
Apr 06 Javascript
详解vue.js全局组件和局部组件
Apr 10 Javascript
Angular实现的自定义模糊查询、排序及三角箭头标注功能示例
Dec 28 Javascript
js判断复选框是否选中的方法示例【基于jQuery】
Oct 10 jQuery
小程序实现投票进度条
Nov 20 Javascript
Vuex的各个模块封装的实现
Jun 05 Javascript
vue打开子组件弹窗都刷新功能的实现
Sep 21 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
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
2017/05/05 星际争霸
PHP中array_merge和array相加的区别分析
2013/06/17 PHP
CI框架中集成CKEditor编辑器的教程
2014/06/09 PHP
PHP程序员常见的40个陋习,你中了几个?
2014/11/20 PHP
php查询相似度最高的字符串的方法
2015/03/12 PHP
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
详解JavaScript函数绑定
2013/08/18 Javascript
JS测试显示屏分辨率以及屏幕尺寸的方法
2013/11/22 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
深入分析Javascript事件代理
2016/01/30 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
JavaScript Image对象实现原理实例解析
2020/08/26 Javascript
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
[37:29]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.19
2020/11/19 DOTA
python开发利器之ulipad的使用实践
2017/03/16 Python
PyTorch基本数据类型(一)
2019/05/22 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
2019/07/08 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
pytorch逐元素比较tensor大小实例
2020/01/03 Python
对pytorch的函数中的group参数的作用介绍
2020/02/18 Python
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
GLAMGLOW格莱魅美国官网:美国知名的面膜品牌
2016/12/31 全球购物
编写类String的构造函数、析构函数和赋值函数
2012/05/29 面试题
职称自我鉴定
2013/10/15 职场文书
项目计划书范文
2014/01/09 职场文书
《藤野先生》教学反思
2014/02/19 职场文书
安全月宣传标语
2014/10/07 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书
《别在吃苦的年纪选择安逸》读后感3篇
2019/11/30 职场文书
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript