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实例教程(19) 使用HoTMetal(5)
Dec 23 Javascript
jquery删除数据记录时的弹出提示效果
May 06 Javascript
实现图片预加载的三大方法及优缺点分析
Nov 19 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
Sep 06 Javascript
BootStrap 实现各种样式的进度条效果
Dec 07 Javascript
零基础轻松学JavaScript闭包
Dec 30 Javascript
bootstrap多层模态框滚动条消失的问题
Jul 21 Javascript
微信小程序的tab选项卡的实现效果
May 15 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
May 23 Javascript
JavaScript命令模式原理与用法实例详解
Mar 10 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
Jun 08 Javascript
使用js和canvas实现时钟效果
Sep 08 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
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
TNC vs BOOM BO3 第一场2.13
2021/03/10 DOTA
JavaScript 继承详解(二)
2009/07/13 Javascript
屏蔽F1~F12的快捷键的js函数
2010/05/06 Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
将查询条件的input、select清空
2014/01/14 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
浅谈jQuery中的事件
2015/03/23 Javascript
JS通过ajax动态读取xml文件内容的方法
2015/03/24 Javascript
jQuery和JavaScript节点插入元素的方法对比
2016/11/18 Javascript
Express+Nodejs 下的登录拦截实现代码
2017/07/01 NodeJs
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
vue实现前进刷新后退不刷新效果
2018/01/26 Javascript
layui table 参数设置方法
2018/08/14 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
Flutter实现仿微信底部菜单栏功能
2019/09/18 Javascript
[52:14]VG vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
python编程羊车门问题代码示例
2017/10/25 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
python如何写try语句
2020/07/14 Python
HTML5 创建canvas元素示例代码
2014/06/04 HTML / CSS
美国知名女性服饰品牌:New York & Company
2017/03/23 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
三星加拿大官方网上商店:Samsung CA
2020/12/18 全球购物
党校自我鉴定范文
2013/10/02 职场文书
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
效能风暴心得体会
2014/09/04 职场文书
交通肇事罪辩护词
2015/05/21 职场文书
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android