图片懒加载技术今用得相当广泛,如淘宝、迅雷等大型海量图片网站都运用了此js技术,
所谓img lazyload,简而言之则为浏览器可视范围图片加载,也就是浏览至哪张图片此时才会
发请求至服务器加载,这样在很大程度上提升了网站访问性能。
jquery的lazyload组建实现了此功能,如下是本人写的一简易版,愿与大家分享!
lazyload.js内容为:
function lazyLoadImg(){
imgs = document.getElementsByTagName("img");
addOnscroll();
}
//滚动条事件
function addOnscroll(){
runload();
window.onscroll = function (){
runload();
}
}
//可视范围加载
function runload(){
for(var i=0; i<imgs.length; i++){
var isload = imgs[i].getAttribute("isload");
var point = getXY(imgs[i])
var clientY = document.documentElement.clientHeight;
var clientX = document.documentElement.clientWidth;
var imgclientY = point.y-(document.documentElement.scrollTop);
var imgclientX = point.x-(document.documentElement.scrollLeft);
if(isload != "true" && imgclientY < clientY && imgclientX < clientX){
imgs[i].src = imgs[i].getAttribute("_src");
imgs[i].setAttribute("isload", "true");
}
}
}
//获取目标决定坐标
function getXY(aBox){
var tp=aBox.offsetTop;
var lft=aBox.offsetLeft;
do {
aBox = aBox.offsetParent;
lft += aBox.offsetLeft;
tp += aBox.offsetTop;
} while( aBox.tagName != "BODY" );
return {"x":lft, "y":tp};
}
//初始化
window.onload = function (){
lazyLoadImg();
}
?? 页面只需在img标签中添加_src(值为图片路径,原有的src设置成默认加载图片),最后导入js即可