自己动手制作基于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 相关文章推荐
找到一点可怜的关于dojo资料,谢谢作者!
Dec 06 Javascript
电子商务网站上的常用的js放大镜效果
Dec 08 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
Sep 14 Javascript
JS动态修改图片的URL(src)的方法
Apr 01 Javascript
基于JS实现类似支付宝支付密码输入框
Sep 02 Javascript
js实现登录框鼠标拖拽效果
Mar 09 Javascript
React手稿之 React-Saga的详解
Nov 12 Javascript
vue.js指令v-for使用以及下标索引的获取
Jan 31 Javascript
微信小程序实现联动选择器
Feb 15 Javascript
解决layer.msg 不居中 ifram中的问题
Sep 05 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
Sep 23 Javascript
jQuery实现简单全选框
Sep 13 jQuery
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 读取文件乱码问题
2010/02/20 PHP
PHP生成Flash动画的实现代码
2010/03/12 PHP
php中{}大括号是什么意思
2013/12/01 PHP
destoon数据库表说明汇总
2014/07/15 PHP
phpinfo无法显示的原因及解决办法
2019/02/15 PHP
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
js获取键盘按键响应事件(兼容各浏览器)
2013/05/16 Javascript
JS实现简单的Canvas画图实例
2013/07/04 Javascript
Js参数值中含有单引号或双引号问题的解决方法
2013/11/06 Javascript
javascripit实现密码强度检测代码分享
2013/12/12 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
对vue.js中this.$emit的深入理解
2018/02/23 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
vue项目设置scrollTop不起作用(总结)
2018/12/21 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
[19:15]DK战队纪录片
2014/09/02 DOTA
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
Python入门学习之字符串与比较运算符
2015/10/12 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
Python3实现汉语转换为汉语拼音
2019/07/08 Python
DataFrame.to_excel多次写入不同Sheet的实例
2019/12/02 Python
pandas中的数据去重处理的实现方法
2020/02/10 Python
python关于变量名的基础知识点
2020/03/03 Python
python文件操作seek()偏移量,读取指正到指定位置操作
2020/07/05 Python
美国性感女装网站:bebe
2017/03/04 全球购物
公司委托书范本
2014/04/04 职场文书
安全协议书范本
2014/04/21 职场文书
小学亲子活动总结
2014/07/01 职场文书
建筑管理专业求职信
2014/07/28 职场文书
小程序与后端Java接口交互实现HelloWorld入门
2021/07/09 Java/Android
mybatis 获取更新记录的id
2022/05/20 Java/Android