网页图片延时加载的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 相关文章推荐
JS小功能(onmouseover实现选择月份)实例代码
Nov 28 Javascript
浅谈document.write()输出样式
May 07 Javascript
js判断移动端是否安装某款app的多种方法
Dec 18 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
May 10 Javascript
解决bootstrap导航栏navbar在IE8上存在缺陷的方法
Jul 01 Javascript
jquery+CSS3实现3D拖拽相册效果
Jul 18 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
Feb 08 Javascript
Bootstrap DateTime Picker日历控件简单应用
Mar 25 Javascript
浅析Vue自定义组件的v-model
Nov 26 Javascript
weebox弹出窗口不居中显示的解决方法
Nov 27 Javascript
node.js环境搭建图文详解
Sep 19 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
Feb 23 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
如何用php获取文件名后缀
2013/06/09 PHP
php中json_encode UTF-8中文乱码的更好解决方法
2014/09/28 PHP
PHP中遇到的时区问题解决方法
2015/07/23 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
实现非常简单的js双向数据绑定
2015/11/06 Javascript
基于JavaScript实现类似于百度学术高级检索功能
2016/03/02 Javascript
JQuery点击行tr实现checkBox选中的简单实例
2016/05/26 Javascript
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
JSON字符串和JSON对象相互转化实例详解
2017/01/05 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
深入理解AngularJs-scope的脏检查(一)
2017/06/19 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
javaScript实现一个队列的方法
2020/07/14 Javascript
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
批量将ppt转换为pdf的Python代码 只要27行!
2018/02/26 Python
Sanic框架请求与响应实例分析
2018/07/16 Python
如何使用Python多线程测试并发漏洞
2019/12/18 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
2020/02/15 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
Python爬虫爬取博客实现可视化过程解析
2020/06/29 Python
python 基于opencv操作摄像头
2020/12/24 Python
如何用 Python 制作 GitHub 消息助手
2021/02/20 Python
解决CSS3的opacity属性带来的层叠顺序问题
2016/05/09 HTML / CSS
拉斯维加斯酒店、演出、旅游、俱乐部及更多:Vegas.com
2019/02/28 全球购物
2014的自我评价
2014/01/13 职场文书
应届毕业生通用的自荐书范文
2014/02/07 职场文书
成本会计实训报告
2014/11/05 职场文书
给领导的感谢信范文
2015/01/23 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
Vue过滤器(filter)实现及应用场景详解
2021/06/15 Vue.js