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 相关文章推荐
我遇到的参数传递中 双引号单引号嵌套问题
Feb 11 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
Oct 11 Javascript
jQuery中triggerHandler()方法用法实例
Jan 19 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
Sep 18 Javascript
jquery验证邮箱格式是否正确实例讲解
Nov 16 Javascript
使用JavaScript实现ajax的实例代码
May 11 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
Nov 27 Javascript
Bootstrap表格使用方法详解
Feb 17 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
Apr 27 Javascript
js实现无缝轮播图
Mar 09 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
Jun 02 Javascript
JavaScript Html实现移动端红包雨功能页面
Jan 10 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
php处理json时中文问题的解决方法
2011/04/12 PHP
基于xcache的配置与使用详解
2013/06/18 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
Symfony的安装和配置方法
2016/03/17 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
2017/02/17 PHP
PHPUnit + Laravel单元测试常用技能
2019/11/06 PHP
jquery 事件对象属性小结
2010/04/27 Javascript
javascript间隔刷新的简单实例
2013/11/14 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
javascript几个易错点记录
2014/11/26 Javascript
Javascript中arguments用法实例分析
2015/06/13 Javascript
jquery实现两边飘浮可关闭的对联广告
2015/11/27 Javascript
JQuery实现Ajax加载图片的方法
2015/12/24 Javascript
vue-router实现tab标签页(单页面)详解
2017/10/17 Javascript
NodeJs项目中关闭ESLint的方法
2018/08/09 NodeJs
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
详解React 的几种条件渲染以及选择
2018/10/23 Javascript
JSX在render函数中的应用详解
2019/09/04 Javascript
[33:19]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第一场 11.26
2020/11/30 DOTA
django连接mysql配置方法总结(推荐)
2018/08/18 Python
python使用Matplotlib画条形图
2020/03/25 Python
在PyCharm中实现关闭一个死循环程序的方法
2018/11/29 Python
python编写猜数字小游戏
2019/10/06 Python
python向图片里添加文字
2019/11/26 Python
Python运行异常管理解决方案
2020/03/09 Python
python网络编程之五子棋游戏
2020/05/14 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
Django集成MongoDB实现过程解析
2020/12/01 Python
YSL圣罗兰美妆官方旗舰店:购买YSL口红
2018/04/16 全球购物
面料业务员岗位职责
2013/12/26 职场文书
餐厅服务员管理制度
2015/08/05 职场文书
导游词之青城山景区
2019/09/27 职场文书
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
Python基本数据类型之字符串str
2021/07/21 Python
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android