Dev Blog

스크립트 & 소스코드 공유

실무에서 유용하게 쓰는 스크립트와 코드 조각을 블로그 게시판으로 저장하고 공유합니다.

jQuery|JAVASCRIPT jQuery로 스크롤에 따라 이미지 지연 로딩(레이지로드) 구현하기

페이지 정보

조회 255회 작성일 21-03-31 21:40
이미지가 많아 페이지 로딩이 느려질 때, 스크롤을 내리면 화면에 들어오는 이미지만 순서대로 표시되도록 하는 jQuery 레이지로드 예제다. 이미지의 original 속성에 실제 경로를 저장해 두고 scroll 이벤트에서 화면 진입 여부를 판단해 src를 교체한 뒤 fadeIn으로 표시한다. CSS와 HTML 예제도 함께 제공한다.

根据滚动条下拉而延迟加载显示图片特效,通过jquery来实现这个图片延迟加载显示特效,当用户下拉滚动条时才加载图片。

<script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2-vsdoc2.js" type="text/javascript" language="javascript"></script>
<script type="text/javascript">
$(function(){
var $winH = $(window).height();
var $img = $("#show img");
var $imgH = parseInt($img.height()/2);
var $srcDef = "/data/editor/2103/5637885820110126103051018_CYJbtpaHLA.gif";
runing();
$(window).scroll(function(){
runing();
})
function runing(){
$img.each(function(i){
var $src = $img.eq(i).attr("original");
var $scroTop = $img.eq(i).offset();
if($scroTop.top + $imgH >= $(window).scrollTop() && $(window).scrollTop() + $winH >= $scroTop.top + $imgH)
{
if($img.eq(i).attr("src") == $srcDef){
$img.eq(i).hide();
}
$img.eq(i).attr("src",function(){return $src}).fadeIn(300);
}
})
}
})
</script>
*{ border:0;}
a{ display:inline; float:left; margin:55px; background:#ccc; overflow:hidden; font-size:0;}
<div id="show">
<a href="#"><img src="/data/editor/2103/5637885820110126103051018_CYJbtpaHLA.gif" width="160" height="160" original="http://img181.poco.cn/mypoco/myphoto/20110126/10/5637885820110126103208087.jpg" /></a>

<a href="#"><img src="/data/editor/2103/5637885820110126103051018_CYJbtpaHLA.gif" width="160" height="160" original="http://img181.poco.cn/mypoco/myphoto/20110126/10/5637885820110126103303012.jpg" /></a>
</div>


Let's create something great together.

프로젝트 문의 및 견적 요청은 언제든 환영합니다.