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,jquery闭包概念分析
Jun 19 Javascript
jQuery控制TR显示隐藏的三种常用方法
Aug 21 Javascript
node中socket.io的事件使用详解
Dec 15 Javascript
JavaScript整除运算函数ceil和floor的区别分析
Apr 14 Javascript
聊一聊JS中this的指向问题
Jun 17 Javascript
js倒计时简单实现代码
Aug 11 Javascript
JS实现倒计时(天数、时、分、秒)
Nov 16 Javascript
JS库之Three.js 简易入门教程(详解之一)
Sep 13 Javascript
javascript实现QQ空间相册展示源码
Dec 12 Javascript
JS处理一些简单计算题
Feb 24 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
Aug 22 Javascript
小程序绑定用户方案优化小结
May 15 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闭包(Closure)使用详解
2013/05/02 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
2016/06/13 PHP
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
javascript中强制执行toString()具体实现
2013/04/27 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
JS中表单的使用小结
2014/01/11 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
浅谈JavaScript中的对象及Promise对象的实现
2015/11/15 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
JavaScript获取服务器时间的方法详解
2016/12/11 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
JavaScript常用数学函数用法示例
2018/05/14 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
eslint+prettier统一代码风格的实现方法
2020/07/22 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
python对验证码降噪的实现示例代码
2019/11/12 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
2020/06/09 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
英国鞋网:Rubber Sole
2020/03/03 全球购物
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
财务出纳员岗位职责
2013/11/26 职场文书
拆迁委托协议书
2014/09/15 职场文书
学生病假条怎么写
2015/08/17 职场文书
员工担保书范本
2015/09/22 职场文书
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android