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 相关文章推荐
window.open的页面如何刷新(父页面)上层页面
Dec 28 Javascript
JS(JQuery)操作Array的相关方法介绍
Feb 11 Javascript
js通过八个点 拖动改变div大小的实现方法
Mar 05 Javascript
CSS3实现动态背景登录框的代码
Jul 28 Javascript
一道JS前端闭包面试题解析
Dec 25 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
Sep 20 Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
Dec 27 Javascript
详解vue-validator(vue验证器)
Jan 16 Javascript
jQuery加载及解析XML文件的方法实例分析
Jan 22 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
Dec 31 Javascript
layui.tree组件的使用以及搜索节点功能的实现
Sep 26 Javascript
vue实现简单的登录弹出框
Oct 26 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
Codeigniter框架实现获取分页数据和总条数的方法
2014/12/05 PHP
php自定文件保存session的方法
2014/12/10 PHP
微信公众平台实现获取用户OpenID的方法
2015/04/15 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
如何用javascript判断录入的日期是否合法
2007/01/08 Javascript
JQuery 常用方法基础教程
2009/02/06 Javascript
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
javascript实现节点(div)名称编辑
2014/12/17 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
JS锚点的设置与使用方法
2016/09/05 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
2016/09/23 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
JS实现选项卡效果的代码实例
2019/05/20 Javascript
jquery实现图片放大镜效果
2020/12/23 jQuery
[56:46]Liquid vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
用Python抢过年的火车票附源码
2015/12/07 Python
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
python3实现表白神器
2019/04/09 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
vue学习笔记之动态组件和v-once指令简单示例
2020/02/29 Python
python判断两个序列的成员是否一样的实例代码
2020/03/01 Python
python 5个顶级异步框架推荐
2020/09/09 Python
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
白色公司:The White Company
2017/10/11 全球购物
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
springboot如何初始化执行sql语句
2021/06/22 Java/Android
使用CSS连接数据库的方式
2022/02/28 HTML / CSS