1. 程式人生 > >lazyLoad 懶載入 圖片例子

lazyLoad 懶載入 圖片例子

因為專案與圖片資源伺服器分離,而首頁若是全部載入圖片的話會很慢、所以研究了一下懶載入的例子,然後適用到了專案中。

大概的思路就是建立個div 、然後滾動條事件繫結  檢測顯示的頁面div是否在一個高度的條件內、在給圖片的src賦值、 

需要jquery.js      我的版本是1.7.1min

<script src="jquery-1.7.1.min.js"></script>


<style type="text/css">
#lazyLoadImage img{ width:159px; height:71px; border:1px solid #CCCCCC; padding:3px; float:left; margin:10px; visibility:visible;opacity:0.00;filter:alpha(opacity=00);-moz-opacity:0.0;}
</style>


filter:alpha(opacity=00);是 ie的、

-moz-opacity:0.0; 是ff的、

<script>
function imgLazyLoad(){//掃描需要載入的div
	$.each($("#lazyLoadImage img"),function(i,o){		
		//獲取視窗高		
		var windowHeight=$(window).height();
		//獲取滾動條
		var scrollTop=$(document).scrollTop();
		windowHeight=windowHeight; //可以設定滾動條在顯示某個高度來lazyload   windowHeight=windowHeight/2; 比如在顯示螢幕高度2分之1的時候載入
		
		
		//先判斷是否是載入完的圖片 跳出
		if($(o).attr("src")==$(o).attr("pic")){
			return true;
		}else if( $(o).offset().top<=(scrollTop+windowHeight)  && $(o).offset().top >= scrollTop ){//判斷div是不是出在可見的位置
			if($(o).attr("pic") != undefined || $(o).attr("pic") != "undefined" ){
				var ObjectSrc = $(o).attr("pic");
				//把pic的值賦給src值
				$(o).attr("src",ObjectSrc);
				//css屬性改為可見
				$(o).css("visibility","visible");
				//漸變時間和漸變值
				$(o).fadeTo(1000,1.00);
			}
		}				
	});	
}
$(function(){//頁面第一次載入時
	imgLazyLoad();//初始化
	//判斷瀏覽器
	if($.browser.msie){
		//IE瀏覽器
		$(window).scroll(imgLazyLoad);//瀏覽器的相容
	}else {
		//其他瀏覽器 ff chrome 測試通過
		$(document).scroll(imgLazyLoad);//當滾動條滾動時,掃描需要載入的div
	}
	
	//$("body").scroll(imgLazyLoad);//瀏覽器的相容   不清楚是哪款瀏覽器
});
</script>




<div id="lazyLoadImage">
<img pic="http://csdnimg.cn/www/images/csdnindex_logo.gif"/>
<img pic="http://csdnimg.cn/www/images/csdnindex_logo.gif"/>
<img pic="http://csdnimg.cn/www/images/csdnindex_logo.gif"/>
<img pic="http://csdnimg.cn/www/images/csdnindex_logo.gif"/>
<img pic="http://csdnimg.cn/www/images/csdnindex_logo.gif"/>
<img pic="http://csdnimg.cn/www/images/csdnindex_logo.gif"/>
<img pic="http://csdnimg.cn/www/images/csdnindex_logo.gif"/>
<img pic="http://csdnimg.cn/www/images/csdnindex_logo.gif"/>
<img pic="http://csdnimg.cn/www/images/csdnindex_logo.gif"/>
...請批量複製多個圖片
<div>