jQuery lazyload 的重复加载错误以及修复方法


Posted in Javascript onNovember 19, 2010

分析代码也可以知道。
最主要的原因是 写在页面上的 <img src="the_big_img_toLoad.jpg" />一经加载,就去向服务器申请图片地址,加载大图片。
如果想实现原定的效果,则 写在页面上的待加载地址 必须不能是大图片的地址,而我们可以将真正的图片地址数据 存储在alt属性中。
正确的例子如下:

<a href="#nogo"><img alt="https://3water.com/comstyles/img200-150-3.jpg" src="http://sc.3water.com/style/img/spacer.gif" alt="200-150" /></a> 
<a href="#nogo"><img alt="https://3water.com/comstyles/img200-150-4.jpg" src="http://sc.3water.com/style/img/spacer.gif" alt="200-150" /></a>

对原来的 jquery.lazyload.js我们也需要做一点改动:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
<script type="text/javascript" src="lazyload.js"></script> 
<script type="text/javascript"> //初始化代码 
$(document).ready(function(){ 
$("#lazy1 img,#lazy2 img").lazyload({ 
placeholder : "http://sc.3water.com/style/img/spacer.gif", 
effect : "fadeIn" 
}); 
}); 
</script>

完整实例如下:
<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>无标题文档</title> 
<style type="text/css"> 
img{ display:block; border:2px solid #ccc; margin:0 0 10px;} 
</style> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
<script type="text/javascript" src="lazyload.js"></script> 
<script type="text/javascript"> //初始化代码 
$(document).ready(function(){ 
$("#lazy1 img,#lazy2 img").lazyload({ 
placeholder : "http://qsl.cn/style/img/spacer.gif", 
effect : "fadeIn" 
}); 
}); 
</script> 
</head> 
<body> 
<div style=" height:900px; width:400px; background:#eee;"> 
<a href="#nogo"><img src="http://www.titan24.com/comstyles/img200-150-2.jpg" alt="200-150" /></a> 
第一屏高度为900px,滚动到下面的时候,相应图片才开始加载 
</div> 
<div id="lazy1" style="width:350px; margin-bottom:340px;"> 
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/ad400-300.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="400-300" /></a> 
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img200-150-1.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a> 
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img200-150-2.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a> 
</div> 
<div id="lazy2" style="width:350px;"> 
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img200-150-3.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a> 
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img200-150-4.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a> 
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img560-300-1.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a> 
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img560-300-2.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a> 
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img560-300-3.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a> 
<a href="#nogo"><img alt="http://www.titan24.com/comstyles/img560-300-4.jpg" src="http://qsl.cn/style/img/spacer.gif" alt="200-150" /></a> 
</div> 
</body> 
</html>

测试可知 是真正的按需加载。而不是像之前,先加载了,滚动到相应位置 还又加载了一次。
Firebug的眼睛还是雪亮的。
Javascript 相关文章推荐
JavaScript中获取高度和宽度函数总结
Oct 08 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
Sep 16 Javascript
JS使用eval解析JSON的注意事项分析
Nov 14 Javascript
阿里巴巴技术文章分享 Javascript继承机制的实现
Jan 14 Javascript
js验证框架之RealyEasy验证详解
Jun 08 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
Oct 13 Javascript
基于javascript实现按圆形排列DIV元素(二)
Dec 02 Javascript
Jqprint实现页面打印
Jan 06 Javascript
websocket+node.js实现实时聊天系统问题咨询
May 17 Javascript
vue如何使用 Slot 分发内容实例详解
Sep 05 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
Apr 07 Javascript
详解Node.JS模块 process
Aug 31 Javascript
JQuery 选择和过滤方法代码总结
Nov 19 #Javascript
基于jquery的一个OutlookBar类,动态创建导航条
Nov 19 #Javascript
非阻塞动态加载javascript广告实现代码
Nov 17 #Javascript
javascript实现的使用方向键控制光标在table单元格中切换
Nov 17 #Javascript
Google AJAX 搜索 API实现代码
Nov 17 #Javascript
jQuery阻止冒泡和HTML默认操作
Nov 17 #Javascript
菜鸟学习JavaScript小实验之函数引用
Nov 17 #Javascript
You might like
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
PHP文件上传类实例详解
2016/04/08 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
2020/08/03 PHP
php中get_object_vars()在数组的实例用法
2021/02/22 PHP
JavaScript的目的分析
2007/01/05 Javascript
学习YUI.Ext 第二天
2007/03/10 Javascript
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
jQuery中after的两种用法实例
2013/07/03 Javascript
ie 7/8不支持trim的属性的解决方案
2014/05/23 Javascript
webpack+vue.js快速入门教程
2016/10/12 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
vue路由懒加载的实现方法
2018/03/12 Javascript
React Native基础入门之调试React Native应用的一小步
2018/07/02 Javascript
在VUE中实现文件下载并判断状态的方法
2019/11/08 Javascript
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
[53:15]Mineski vs iG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
17个Python小技巧分享
2015/01/23 Python
简述Python中的面向对象编程的概念
2015/04/27 Python
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
深入理解Python中变量赋值的问题
2017/01/12 Python
python中requests小技巧
2017/05/10 Python
pyspark 读取csv文件创建DataFrame的两种方法
2018/06/07 Python
python 读取摄像头数据并保存的实例
2018/08/03 Python
详解Python requests 超时和重试的方法
2018/12/18 Python
Python列表list操作相关知识小结
2020/01/29 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
2020/06/22 Python
selenium+headless chrome爬虫的实现示例
2021/01/08 Python
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
2013/07/04 HTML / CSS
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
五年级数学教学反思
2014/02/11 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
结婚通知短信怎么写
2015/04/17 职场文书