前段時間朋友說讓給做一個js延時加載圖片人功能,原來也的網上見過這些,但是沒有具體的研究。今天學習了下,發出來和大家一直分享。至於延時加載的好處我在這裡就不說了,好多朋友都說可以減少服務器短時間的請求數量。
效果網址:http:///keleyi/phtml/jquery/lazyload.htm
一、原理分析
1.可顯示區域的的圖片正常顯示,不可顯示的不去請求
2.當滾動滾動條時,計算可顯示的圖片,把圖片的src的真實路徑寫入。
二、代碼
這裡我用的是jquery來做的,當然大家如果明白了原理,用什麼做都可以做出很不錯的效果。
下面看代碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script type="text/javascript" src="http:///keleyi/pmedia/jquery-1.9.1.min.js"></script>
<title>js圖片延時加載特效</title>
<script type="text/javascript">
$(function(){
var d = new Array();
for (i = 0; i < $("img").length; i++) {
d[i] = $("img").eq(i).attr("name");
}
for (i = 0; i < $("img").length; i++) {
if ($("img").eq(i).offset().top > document.documentElement.clientHeight + $(window).scrollTop()) {
$("img").eq(i).attr("src", "hc.gif");
} else {
$("img").eq(i).attr("src", d[i]);
}
}
$(window).scroll(function() {
for (i = 0; i < $("img").length; i++) {
if ($("img").eq(i).offset().top > document.documentElement.clientHeight + $(window).scrollTop()) {
$("img").eq(i).attr("src", "hc.gif");
} else {
$("img").eq(i).attr("src", d[i]);
}
}
})
})
</script>
</head>
<body>
<img name="http:///keleyi/phtml/picnext/images/k03.jpg" src="hc.gif" />
<br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/>
</body>
</html>