网页图片延时加载的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 相关文章推荐
15条JavaScript最佳实践小结
Aug 09 Javascript
javascript实现颜色渐变的方法
Oct 30 Javascript
node.js中的http.response.addTrailers方法使用说明
Dec 14 Javascript
实践中学习AngularJS表单
Mar 21 Javascript
微信小程序 input输入及动态设置按钮的实现
Oct 27 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
Mar 07 Javascript
Vue如何实现响应式系统
Jul 11 Javascript
Vue组件创建和传值的方法
Aug 17 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
Nov 15 Javascript
JS字符串常用操作方法实例小结
Jun 24 Javascript
JavaScript鼠标拖拽事件详解
Apr 03 Javascript
vue整合百度地图显示指定地点信息
Apr 06 Vue.js
基于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
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
php强制运行广告的方法
2014/12/01 PHP
通过php修改xml文档内容的方法
2015/01/23 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
2016/04/21 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
再论Javascript下字符串连接的性能
2011/03/05 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
String.prototype实现的一些javascript函数介绍
2013/11/22 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
JQuery和HTML5 Canvas实现弹幕效果
2017/01/04 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
react.js使用webpack搭配环境的入门教程
2017/08/14 Javascript
hammer.js实现图片手势放大效果
2017/08/29 Javascript
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
2019/09/04 Javascript
21行Python代码实现拼写检查器
2016/01/25 Python
Python编程中对文件和存储器的读写示例
2016/01/25 Python
Python文件处理
2016/02/29 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
Python如何在单元测试中给对象打补丁
2020/08/03 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
python把一个字符串切开的实例方法
2020/09/27 Python
css3实现二维码扫描特效的示例
2020/10/29 HTML / CSS
护理学毕业生自荐信
2013/10/02 职场文书
教师现实表现材料
2014/02/14 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
那些美到让人窒息的诗句,值得你收藏!
2019/08/20 职场文书