滚动加载图片 图片 滚动 加载
function load_img(){
$('.scrollimg').each(function(){
if(($(this).offset().top)< ($(window).scrollTop()+$(window).height()) && $(this)[0].title=='') { //判断图片是否在可视区域 并且title=='',为了防止已经加载成功的图片又再次去请求
if( !$(this).data('loading') ){//图片没data-loading=""的属性才执行,防止正在加载的图片又在不断请求
$(this).data('loading','true');
$(this).attr({ src:$(this).data('url') });
$(this).load(function(){ $(this)[0].title='ok' });
$(this).error(function(){ $(this)[0].title='no' });
}
}
});
}
load_img();
$(window).scroll(function(){
load_img();
});
<img class="scrollimg" title="" data-url="http://lorempixel.com/100/100?0.7218343850690871" src="loading.jpg" height="100" width="100">
这里注意 尽量要事先定义好图片的宽高,不然图片的offset().top定位就不准确了,因为DOM加载完成后JS代码就执行了,不等待图片加载完。
本站案例:https://sdeno.com/zp/scroll_img/1.html
《jquery 分屏加载图片 滚动加载图片》介绍的是张鑫旭的滚动加载图片效果

