网页图片延时加载的js代码


Posted in Javascript onApril 22, 2010

实现原理 

把所有需要延时加载的图片改成如下的格式:

网页图片延时加载的js代码

然后在页面加载时,把所有使用了lazy_src的图片都保存到数组里,然后在滚动时计算可视区域的top,然后把延时加载的图片中top小于当前可视区域(即图片出现在可视区域内)的图片的src的值用lazy_src的来替换(加载图片)

代码

lazyLoad=(function() { var map_element = {}; var element_obj = []; var download_count = 0; var last_offset = -1; var doc_body; var doc_element; var lazy_load_tag; function initVar(tags) { doc_body = document.body; doc_element = document.compatMode == 'BackCompat' ? doc_body: document.documentElement; lazy_load_tag = tags || ["img", "iframe"]; }; function initElementMap() { var all_element = []; //从所有相关元素中找出需要延时加载的元素 for (var i = 0, len = lazy_load_tag.length; i key) { var t_o = map_element[key]; var img_vl = t_o.length; for (var l = 0; l

使用方法:把页面上需要延时加载的图片src改成为lazy_src,然后把上面的js放到body最后面,然后调用:lazyLoad.init();

调戏的方法可以使用firebug来查看一时图片是否是延时加载。

另外:

如果你的页面上存在有内容切换的栏目的话,可能在切换时切换的内容里的图片可能会不显示,处理的方法是在内容时单独图片加载处理,如:

///切换内容的代码... chlid.find("img[init_src]").each(function(){ $(this).attr("src",$(this).attr("init_src")); $(this).removeAttr("init_src"); });

Javascript 相关文章推荐
Javascript MD4
Dec 20 Javascript
js 限制input只能输入数字、字母和汉字等等
Dec 18 Javascript
JavaScript操作cookie类实例
Mar 31 Javascript
星期几的不同脚本写法(推荐)
Jun 01 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
Oct 26 Javascript
根据Bootstrap Paginator改写的js分页插件
Dec 25 Javascript
基于Vue.js实现tab滑块效果
Jul 23 Javascript
JS中正则表达式要注意lastIndex属性
Aug 08 Javascript
基于Vue实例生命周期(全面解析)
Aug 16 Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
Nov 10 Javascript
layui实现文件或图片上传记录
Aug 28 Javascript
es6数组的flat(),flatMap()函数用法实例分析
Apr 18 Javascript
基于jQuery的表格操作插件
Apr 22 #Javascript
JQuery实现的在新窗口打开链接的方法小结
Apr 22 #Javascript
JQuery 技巧和窍门整理(8个)
Apr 22 #Javascript
超级酷和最实用的jQuery实例收集(20个)
Apr 21 #Javascript
基于jquery的超简单上下翻
Apr 20 #Javascript
基于jquery1.4.2的仿flash超炫焦点图播放效果
Apr 20 #Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
Apr 20 #Javascript
You might like
学习php过程中的一些注意点的总结
2013/10/25 PHP
php mysql实现mysql_select_db选择数据库
2016/12/30 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
jquery.validate使用攻略 第三部
2010/07/01 Javascript
小试JQuery的AutoComplete插件
2011/05/04 Javascript
基于jQuery的遍历同id元素 并响应事件的代码
2012/06/14 Javascript
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
JS画线(实例代码)
2013/11/20 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
2017/04/07 Javascript
Javascript中类式继承和原型式继承的实现方法和区别之处
2017/04/25 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
Vue 事件的$event参数=事件的值案例
2021/01/29 Vue.js
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
Python常用库推荐
2016/12/04 Python
解读! Python在人工智能中的作用
2017/11/14 Python
django中静态文件配置static的方法
2018/05/20 Python
python实现支付宝当面付(扫码支付)功能
2018/05/30 Python
python3+PyQt5 数据库编程--增删改实例
2019/06/17 Python
Python实现扫码工具的示例代码
2020/10/09 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
四年的个人工作自我评价
2013/12/10 职场文书
美术毕业生求职信
2014/02/25 职场文书
个人投资计划书
2014/05/01 职场文书
教师节学生演讲稿
2014/09/03 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
教学质量月活动总结
2015/05/11 职场文书
mybatis使用oracle进行添加数据的方法
2021/04/27 Oracle
vue使用Google Recaptcha验证的实现示例
2021/08/23 Vue.js