网页图片延时加载的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 相关文章推荐
设置下载不需要倒计时cookie(倒计时代码)
Nov 19 Javascript
jquery div 居中技巧应用介绍
Nov 24 Javascript
js实现Select下拉框具有输入功能的方法
Feb 06 Javascript
JS网页在线获取鼠标坐标值的方法
Feb 28 Javascript
Python脚本后台运行的几种方式
Mar 09 Javascript
js的flv视频播放器插件使用方法
Jun 23 Javascript
JS实现来回出现文字的状态栏特效代码
Oct 31 Javascript
深入理解Commonjs规范及Node模块实现
May 17 Javascript
BootStrap中Table隐藏后显示问题的实现代码
Aug 31 Javascript
JavaScript数组去重实现方法小结
Jan 17 Javascript
js HTML DOM EventListener功能与用法实例分析
Apr 27 Javascript
9个JavaScript日常开发小技巧
Oct 06 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 5.0 Pear安装方法
2006/12/06 PHP
php 字符串中是否包含指定字符串的多种方法
2018/04/12 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
js同时按下两个方向键
2007/12/01 Javascript
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
jQuery的:parent选择器定义和用法
2014/07/01 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
javascript 正则表达式去空行方法
2017/01/24 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
2018/08/08 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
layui--select使用以及下拉框实现键盘选择的例子
2019/09/24 Javascript
完美解决Python2操作中文名文件乱码的问题
2017/01/04 Python
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
python web框架 django wsgi原理解析
2019/08/20 Python
python爬虫 Pyppeteer使用方法解析
2019/09/28 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
EJB与JAVA BEAN的区别
2016/08/29 面试题
大学生饮食配送创业计划书
2014/01/04 职场文书
清洁工岗位职责
2014/01/29 职场文书
银行内勤岗位职责
2014/04/09 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
铅球加油稿100字
2014/09/26 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
文明倡议书
2015/01/19 职场文书
初三语文教学计划
2015/01/22 职场文书
趣味运动会标语口号
2015/12/26 职场文书
mysql多表查询-笔记七
2021/04/05 MySQL
Python中OpenCV实现简单车牌字符切割
2021/06/11 Python
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js
element tree树形组件回显数据问题解决
2022/08/14 Javascript