原理分析:
1)、使用jquery来实现该功能。
2)、为动态加载的<img>增加一个属性(自己创建的)data-url=真正图片路径,而将src=一个只有1像素的透明GIF,style设置一个不停地转圈的等待图片作为背景,class="scl"。
3)、相应的jquery对象是class="scl"的,当屏幕可见时,就将data-url来替换src,实现动态加载。
在用户看来,拉动屏幕到这些图片,会看见它们由一个不停地转动的图片变为真正想看的图片。
1、jquery.scrollLoading.js
2、页面
<style type="text/css">
.scl{background:url(/img/loading.gif) no-repeat center;}
.wimg{width:300px;height:200px;}
</style>
<script type="text/javascript" src="/js/jquery.scrollLoading.js?ver=120308_3"></script>
<script type='text/javascript' src='http://cbjs.baidu.com/js/m.js'></script>
<a href='/show.aspx?id=33210947&i=1' target='_blank'><img class="scl" src='/img/pixel.gif' data-url="Upload/2/PicMiniSize/2012-3-9/201203090246063866.jpg"/></a><br/><a href='/show.aspx?id=33210947&i=1' target='_blank'>脚本学堂-www.jb200.com,欢迎大家的光临!</a>
<script type="text/javascript">
$(function() {
$(".scl").scrollLoading();
});
</script>
注意:
有时真正图片的尺寸不一定能事先知道,所以一般不指定 width 和 height。
但这里暂代图片只有1像素,不指定足够大的尺寸,根本看不到不停地转圈等待那个效果;
但如果指定了,比如width=300px,height=200px,那真正图片出来后,也只有这么大,并且看起来变形。
解决办法:
加载前指定width=300px,height=200px,加载完成后,再将这个指定去掉。
定义一个CSS class :.wimg{width:300px;height:200px;},加载完成后去掉这个wimg。jquery.scrollLoading.js中有这么一句: