首页 > 编程 > JavaScript > 正文

自己动手制作基于jQuery的Web页面加载进度条插件

2019-11-20 09:48:06
字体:
来源:转载
供稿:网友

静态效果的实现

网页顶部加载进度条,近年来很流行,很多网站都采用了这种加载方式。网上也有这样类似的插件,今天我们总结一下网页顶部线性页面加载进度条。
大体的写法如下:

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(){ ... } 

都是在页面全部下载完成之后来执行的。两种写法是等价的!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表