自己动手制作基于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 YUI 读码日记之 YAHOO.util.Dom - Part.3
Mar 22 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
Feb 22 Javascript
Lua表达式和控制结构学习笔记
Dec 15 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
Jan 28 Javascript
jQuery实现鼠标经过弹出提示信息的地图热点效果
Aug 07 Javascript
详解JS正则replace的使用方法
Mar 06 Javascript
canvas实现爱心和彩虹雨效果
Mar 09 Javascript
JS查找数组中重复元素的方法详解
Jun 14 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
Aug 03 Javascript
JSON基本语法及与JavaScript的异同实例分析
Jan 04 Javascript
使用vue3重构拼图游戏的实现示例
Jan 25 Vue.js
Vue实现导入Excel功能步骤详解
Jul 03 Vue.js
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制作静态网站的模板框架(二)
2006/10/09 PHP
php中static静态变量的使用方法详解
2010/06/04 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
JQuery each()嵌套使用小结
2014/04/18 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
jquery及js实现动态加载js文件的方法
2016/01/21 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
2016/03/14 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
JavaScript中闭包的详解
2017/04/01 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
VUE简单的定时器实时刷新的实现方法
2019/01/20 Javascript
微信小程序实现登录注册功能
2020/12/29 Javascript
进一步探究Python的装饰器的运用
2015/05/05 Python
通过Pandas读取大文件的实例
2018/06/07 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
python3实现多线程聊天室
2018/12/12 Python
python flask安装和命令详解
2019/04/02 Python
Django--权限Permissions的例子
2019/08/28 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
Python跑循环时内存泄露的解决方法
2020/01/13 Python
Python脚本导出为exe程序的方法
2020/03/25 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
《雷雨》教学反思
2014/02/20 职场文书
班级德育工作实施方案
2014/02/21 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
论语读书笔记
2015/06/26 职场文书
小学四年级作文之写景
2019/08/23 职场文书
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS
vue项目多环境配置(.env)的实现
2021/07/21 Vue.js
django 认证类配置实现
2021/11/11 Python
javascript的setTimeout()使用方法总结
2021/11/20 Javascript
docker-compose部署Yapi的方法
2022/04/08 Servers