lazyLoad=(function() {varmap_element={};varelement_obj=[];vardownload_count=0;varlast_offset=-1;vardoc_body;vardoc_element;varlazy_load_tag;functioninitVar(tags) {
doc_body=document.body;
doc_element=document.compatMode=='BackCompat'?doc_body: document.documentElement;
lazy_load_tag=tags||["img","iframe"];
};functioninitElementMap() {varall_element=[];//从所有相关元素中找出需要延时加载的元素for(vari=0,
len=lazy_load_tag.length; i
len2=el.length; j
element_obj.push(all_element[key]);
}
}
}for(vari=0,
len=element_obj.length; i
map_element[t_index].push(i);
}else{//按距上距离保存一个队列vart_array=[];
t_array[0]=i;
map_element[t_index]=t_array;
download_count++;//需要延时加载的图片数量}
}
};functioninitDownloadListen() {if(!download_count)return;varoffset=(window.MessageEvent&&!document.getBoxObjectFor)?doc_body.scrollTop: doc_element.scrollTop;//可视化区域的offtset=document的高+varvisio_offset=offset+doc_element.clientHeight;if(last_offset==visio_offset) {
setTimeout(initDownloadListen,200);return;
}
last_offset=visio_offset;varvisio_height=doc_element.clientHeight;varimg_show_height=visio_height+offset;for(varkeyinmap_element) {if(img_show_height>key) {vart_o=map_element[key];varimg_vl=t_o.length;for(varl=0; l
element_obj[t_o[l]].src=element_obj[t_o[l]].getAttribute("lazy_src");
}deletemap_element[key];
download_count--;
}
}
setTimeout(initDownloadListen,200);
};functiongetAbsoluteTop(element) {if(arguments.length!=1||element==null) {returnnull;
}varoffsetTop=element.offsetTop;while(element=element.offsetParent) {
offsetTop+=element.offsetTop;
}returnoffsetTop;
}functioninit(tags) {
initVar(tags);
initElementMap();
initDownloadListen();
};return{
init: init
}
})();