网页图片延时加载的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 & DHTML 实例编程(教程)DOM基础和基本API
Jun 02 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
Jun 14 Javascript
JavaScript面向对象(极简主义法minimalist approach)
Jul 17 Javascript
jQuery 获取URL的GET参数值的小例子
Apr 18 Javascript
javascript中通过arguments参数伪装方法重载
Oct 08 Javascript
jquery获取url参数及url加参数的方法
Oct 26 Javascript
前端JS面试中常见的算法问题总结
Dec 23 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
Sep 11 Javascript
Postman模拟发送带token的请求方法
Mar 31 Javascript
Vue绑定内联样式问题
Oct 17 Javascript
详解vue-cli3 中跨域解决方案
Apr 10 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
Jul 24 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字符串截取中文截取2,单字节截取模式
2007/12/10 PHP
PHP中怎样防止SQL注入分析
2014/10/23 PHP
PHP实现获取某个月份周次信息的方法
2015/08/11 PHP
php面向对象与面向过程两种方法给图片添加文字水印
2015/08/26 PHP
详解php 使用Callable Closure强制指定回调类型
2017/10/26 PHP
js调用后台servlet方法实例
2013/06/09 Javascript
javascript移出节点removeChild()使用介绍
2014/04/03 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
JS 排序输出实现table行号自增前端动态生成的tr
2014/08/13 Javascript
ES6中Proxy与Reflect实现重载(overload)的方法
2017/03/30 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
2017/11/22 Javascript
JS实现图片切换效果
2018/11/17 Javascript
谈谈React中的Render Props模式
2018/12/06 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
[13:18]《一刀刀一天》之DOTA全时刻21:详解TI新赛制 A队再露獠牙
2014/06/24 DOTA
python中argparse模块用法实例详解
2015/06/03 Python
Swift中的协议(protocol)学习教程
2016/07/08 Python
Python中shutil模块的学习笔记教程
2017/04/04 Python
python实现微信远程控制电脑
2018/02/22 Python
Python处理中文标点符号大集合
2018/05/14 Python
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
python中线程和进程有何区别
2020/06/17 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
python如何调用百度识图api
2020/09/29 Python
在终端启动Python时报错的解决方案
2020/11/20 Python
庆元旦迎新年广播稿
2014/02/18 职场文书
大学应届生的自我评价
2014/03/06 职场文书
献爱心活动总结
2014/05/07 职场文书
企业活动策划方案
2014/06/02 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS