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 相关文章推荐
JQUERY复选框CHECKBOX全选,取消全选
Aug 30 Javascript
jquery入门——事件机制之事件中的冒泡现象示例解释
Sep 12 Javascript
禁用页面部分JavaScript方法的具体实现
Jul 31 Javascript
JS根据变量保存方法名并执行方法示例
Apr 04 Javascript
使用JavaScript获取地址栏参数的方法
Dec 19 Javascript
js图片模糊切换显示特效的方法
Feb 17 Javascript
JavaScript设置获取和设置属性的方法
Mar 04 Javascript
原生JS实现日历组件的示例代码
Sep 22 Javascript
详解vue 项目白屏解决方案
Oct 31 Javascript
JS 自执行函数原理及用法
Aug 05 Javascript
JavaScript实现电灯开关小案例
Mar 30 Javascript
VUE Elemen-ui之穿梭框使用方法详解
Jan 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生成随机数或者字符串的代码
2008/09/05 PHP
PHP版国家代码、缩写查询函数代码
2011/08/14 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
Yii框架连表查询操作示例
2019/09/06 PHP
input的focus方法使用
2010/03/13 Javascript
JS中for循序中延迟加载动态效果的具体实现
2013/08/18 Javascript
详解JavaScript对W3C DOM模版的支持情况
2015/06/16 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
基于jquery实现图片放大功能
2016/05/07 Javascript
微信小程序实现多个按钮toggle功能的实例
2017/06/13 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
2017/06/26 Javascript
Mac 安装 nodejs方法(图文详细步骤)
2017/10/30 NodeJs
原生js实现淘宝放大镜效果
2020/10/28 Javascript
关于AOP在JS中的实现与应用详解
2019/05/06 Javascript
Nuxt v-bind绑定img src不显示的解决
2019/12/05 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
Python基类函数的重载与调用实例分析
2015/01/12 Python
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
200 行python 代码实现 2048 游戏
2018/01/12 Python
浅谈Python访问MySQL的正确姿势
2020/01/07 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
详解HTML5新增标签
2017/11/27 HTML / CSS
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
Gucci法国官方网站:意大利奢侈品牌
2018/07/25 全球购物
法国高保真音响和家庭影院商店:Son Video
2019/04/26 全球购物
Magee 1866官网:Donegal粗花呢外套和大衣专家
2019/11/01 全球购物
英国奢侈品在线精品店:Hervia
2020/09/03 全球购物
监理员的岗位职责
2013/11/13 职场文书
玩具公司的创业计划书
2013/12/31 职场文书
医院实习接收函
2014/01/12 职场文书
大学生村官承诺书
2014/03/28 职场文书
2014统计局民主生活会对照检查材料思想汇报
2014/10/02 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS
详解JavaScript中Arguments对象用途
2021/08/30 Javascript