这图是从我的blog加载的时候截取下来的。从图中,大家可以清楚的看到,红色跳动的进度条。而那个绿色的进度条,是我的blog皮肤本来就带的一条绿色的线条。会动的那个红色进度条,是在CSS中新建的一个Div。
红色进度条的HTML代码如下:
<div style="display: none;" id="loading"><div style="width: 0%; display: block;"></div></div>
红色进度条的CSS定义如下:
/************load progress bar***************/ #loading { height: 8px; left: 0; position: absolute; top: 100px; width: 100%; z-index: 99999; } #loading div{ display:none; height:8px; background:#d54e21; }
大致实现原理如下:
用绝对定位的方式,将红色的进度条位置准确定位到皮肤背景的绿色线条上,并且进度条的高度要和背景那个绿色线条一致。大家在HTML定义中也看到,在初始情况下,这个红色的进度条是不可见的。加入上面的两处代码,我们的初始准备工作,就做好了。接下来,就更简单了,在你的wordpress首页的不同地方,加入不同的jQuery代码,让红色的进度条可见,并且改变其width值,让它看起来就像动了一样。
比如,在header.php中任意位置,加入如下的jQuery代码:
<script type="text/javascript"> $("#loading").show(); $("#loading div").animate({width:"20%"}); </script>
这样,浏览器在加载到header.php的时候,红色的进度条,就由”隐身”,变为可见,并且长度以动画的形式,增加到20%。这样,聪明的童鞋一定想到了,在index.php的不同位置,分别加入上面的代码,让红色进度条的长度变为40%,60%,80%,这样,我们就能看到红色进度条动态加载的效果了,并且,由于这个代码放在首页不同的位置,它确实能反映出当前浏览器加载代码的真实进度。
最后,有一个收尾的工作,在footer.php中,加入jQuery代码:
<script type="text/javascript"> $("#loading div").animate({width:"100%"},function(){ setTimeout(function(){$("#loading").hide();},1000); }); </script>
这样的目的,是让进度条在首页尾部加载到100%之后,进度条消失,露出皮肤默认的那个绿色线条。
至此,教程结束,其实就这么简单,呵呵。最后,再次感谢ZWW童鞋的分享。
转自https://xiaozhou.net/implementation_of_loading_progress_bar_on_the_top_of_wordpress-2011-02-16.html
本文地址:WordPress顶部加载进度条
发表评论