python 显示图片然后延时_一段实现页面上的图片延时加载的js

这段代码展示了如何使用JavaScript创建一个延迟加载图片和iframe的功能。通过遍历DOM中的特定标签,将需要延迟加载的元素存储在一个映射中,根据元素距离可视区域的距离组织加载队列。当用户滚动页面时,检查可视区域内的元素并加载相应的图片和iframe,从而提高页面性能。
摘要由CSDN通过智能技术生成

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

}

})();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值