浏览器可视范畴图片加载
浏览器可视范围图片加载
图片懒加载技术今用得相当广泛,如淘宝、迅雷等大型海量图片网站都运用了此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即可