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 函数调用规则
Aug 26 Javascript
Jquery 设置标题的自动翻转
Oct 03 Javascript
jQuery 学习入门篇附实例代码
Mar 16 Javascript
关于flash遮盖div浮动层的解决方法
Jul 17 Javascript
JavaScript实现表格快速变色效果代码
Aug 19 Javascript
AngularJS 面试题集锦
Sep 06 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
Sep 12 Javascript
Javascript 引擎工作机制详解
Nov 30 Javascript
JS实现物体带缓冲的间歇运动效果示例
Dec 22 Javascript
vue2实现可复用的轮播图carousel组件详解
Nov 27 Javascript
微信小程序的tab选项卡的实现效果
May 15 Javascript
Javascript实现html转pdf高清版(提高分辨率)
Feb 19 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模拟HTTP认证
2006/10/09 PHP
php getsiteurl()函数
2009/09/05 PHP
CI(CodeIgniter)框架视图中加载视图的方法
2017/03/24 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
php集成开发环境详解
2019/09/24 PHP
PHP7修改的函数
2021/03/09 PHP
javascript 继承实现方法
2009/08/26 Javascript
IE不支持getElementsByClassName最终完美解决方案
2012/12/17 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
javascript简单实现滑动菜单效果的方法
2015/07/27 Javascript
微信小程序 开发之快递查询功能的实现
2017/01/09 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
NVM安装nodejs的方法实用步骤
2019/01/16 NodeJs
layui 实现自动选择radio单选框(checked)的方法
2019/09/03 Javascript
javascript如何实现create方法
2019/11/04 Javascript
vue点击按钮动态创建与删除组件功能
2019/12/29 Javascript
js实现整体缩放页面适配移动端
2020/03/31 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
Python实现获取操作系统版本信息方法
2015/04/08 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
Python装饰器用法实例分析
2019/01/14 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
pytorch 常用线性函数详解
2020/01/15 Python
Python如何使用ElementTree解析xml
2020/10/12 Python
印度尼西亚最大的电商平台:Tokopedia(印尼版淘宝)
2017/12/02 全球购物
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
size?法国官网:英国伦敦的球鞋精品店
2020/03/15 全球购物
房屋租赁合同补充协议
2014/10/11 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
Python集合的基础操作
2021/11/01 Python