网页图片延时加载的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 相关文章推荐
use jscript with List Proxy Server Information
Jun 11 Javascript
用JSON做数据传输格式中的一些问题总结
Dec 21 Javascript
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
Jan 13 Javascript
JS+CSS实现可拖动的弹出提示框
Feb 16 Javascript
jQuery实现三级菜单的代码
May 09 Javascript
JavaScript易错知识点整理
Dec 05 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
May 17 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
Jun 21 Javascript
AngularJS 中的数据源的循环输出
Oct 12 Javascript
node.js使用redis储存session的方法
Sep 26 Javascript
node.JS事件机制与events事件模块的使用方法详解
Feb 06 Javascript
关于angular引入ng-zorro的问题浅析
Sep 09 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
自动把纯文本转换成Web页面的php代码
2009/08/27 PHP
探讨php中防止SQL注入最好的方法是什么
2013/06/10 PHP
分享PHP header函数使用教程
2013/09/05 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
PHP+ajax分页实例简析
2015/12/07 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
用PHP的反射实现委托模式的讲解
2019/03/22 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
Javascript 函数中的参数使用分析
2010/03/27 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
Javascript字符串拼接小技巧(推荐)
2016/06/02 Javascript
AngularJS动态生成div的ID源码解析
2016/08/29 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
详解10分钟学会vue滚动行为
2017/09/21 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
Vue.js搭建移动端购物车界面
2020/06/28 Javascript
Vue页面切换和a链接的本质区别详解
2019/11/12 Javascript
vue style width a href动态拼接问题的解决
2020/08/07 Javascript
Python读取Excel的方法实例分析
2015/07/11 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
2018/02/13 Python
在unittest中使用 logging 模块记录测试数据的方法
2018/11/30 Python
python 实现倒排索引的方法
2018/12/25 Python
python3 pygame实现接小球游戏
2019/05/14 Python
python函数的作用域及关键字详解
2019/08/20 Python
Python实现异步IO的示例
2020/11/05 Python
Mankind美国/加拿大:英国领先的男士美容护发用品公司
2018/12/05 全球购物
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
公司出纳岗位职责
2013/12/07 职场文书
个人专业技术总结
2015/03/05 职场文书
保险公司反洗钱宣传活动总结
2015/05/08 职场文书
浅谈Python基础之列表那些事儿
2021/05/11 Python
基于Python实现流星雨效果的绘制
2022/03/18 Python