jquery网页预加载loading效果实现,非ajax

2018-08-22T15:08:00

这个效果的初衷是实现类似app端数据加载完成前的动画,但是实际上用途很广泛,就比如一些页面很庞大的网站加载完成需要很久时间,让用户看着白色屏幕干等着绝对不是办法,如果给一个网页加载完成前的动画显示,在一定程度上能够留住用户。一般来说很多网页都是通过ajax来请求数据,这样情况下对于判断页面是否加载完成则由ajax请求的反馈来做最终决定,甚至可以实时的确认进度,然而现实在于很多网页没有用ajax,所以也根本不需要太复杂的操作。
以下是我在类似app布局的网站上实现的效果代码。

首先定义HTML代码:

<div class="load">
    <div class="load_main">
        <i class="fa fa-spinner fa-spin"></i>
    </div>
</div>

这里引入了Font Awesome图标字体库的旋转效果,其实也可以用过css3或者js自己写旋转,我这里主要节约时间。

再写点css定义样式:

.load{width:100%;
height:100%;
position:fixed;
top:0;
left:0;
z-index:999;
background:#fff;}
.load_main{width:100%;
height:40px;
position:absolute;
top:40%;
text-align:center;
font-size:60px;}
.load_main i{color:#1f8abf}

这些css定义一个全屏覆盖的加载层,并且置于顶部,设置白色背景和蓝色的旋转小球。设置居中并且处于屏幕相对来说中心的位置。

然后写js代码,注意需要引入jquery:

$(window).load(function() {
   $(".load").fadeOut(500);
})

其实对于jQuery常用的新版本,代码应该为:

$(document).ready(function(){
   $(".load").fadeOut(500);
})

这句话其实意思就是判断页面是否加载完成,如果完成则在0.5秒内逐渐隐藏load层。

最终效果如下:

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »