jQuery lazyload 的重复加载错误以及修复方法_jquery

分析代码也可以知道。
最主要的原因是 写在页面上的 <img src="the_big_img_toLoad.jpg" />一经加载,就去向服务器申请图片地址,加载大图片。
如果想实现原定的效果,则 写在页面上的待加载地址 必须不能是大图片的地址,而我们可以将真正的图片地址数据 存储在alt属性中。
正确的例子如下:

复制代码 代码如下:

<a href="#nogo"><img alt="http://www.jb51.net/comstyles/img200-150-3.jpg" src=https://yunqi-tech.oss-cn-hangzhou.aliyuncs.com/spacer.gif alt="200-150" /></a>
<a href="#nogo"><img alt="http://www.jb51.net/comstyles/img200-150-4.jpg" src=https://yunqi-tech.oss-cn-hangzhou.aliyuncs.com/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 : "yun_qi_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 : "yun_qi_img/spacer.gif",
effect : "fadeIn"
});
});
</script>
</head>
<body>
<div style=" height:900px; width:400px; background:#eee;">
<a href="#nogo"><img src=https://yunqi-tech.oss-cn-hangzhou.aliyuncs.com/img200-150-2.jpg alt="200-150" /></a>
第一屏高度为900px,滚动到下面的时候,相应图片才开始加载
</div>
<div id="lazy1" style="width:350px; margin-bottom:340px;">
<a href="#nogo"><img alt="yun_qi_img/ad400-300.jpg" src=https://yunqi-tech.oss-cn-hangzhou.aliyuncs.com/spacer.gif alt="400-300" /></a>
<a href="#nogo"><img alt="yun_qi_img/img200-150-1.jpg" src=https://yunqi-tech.oss-cn-hangzhou.aliyuncs.com/spacer.gif alt="200-150" /></a>
<a href="#nogo"><img alt="yun_qi_img/img200-150-2.jpg" src=https://yunqi-tech.oss-cn-hangzhou.aliyuncs.com/spacer.gif alt="200-150" /></a>
</div>
<div id="lazy2" style="width:350px;">
<a href="#nogo"><img alt="yun_qi_img/img200-150-3.jpg" src=https://yunqi-tech.oss-cn-hangzhou.aliyuncs.com/spacer.gif alt="200-150" /></a>
<a href="#nogo"><img alt="yun_qi_img/img200-150-4.jpg" src=https://yunqi-tech.oss-cn-hangzhou.aliyuncs.com/spacer.gif alt="200-150" /></a>
<a href="#nogo"><img alt="yun_qi_img/img560-300-1.jpg" src=https://yunqi-tech.oss-cn-hangzhou.aliyuncs.com/spacer.gif alt="200-150" /></a>
<a href="#nogo"><img alt="yun_qi_img/img560-300-2.jpg" src=https://yunqi-tech.oss-cn-hangzhou.aliyuncs.com/spacer.gif alt="200-150" /></a>
<a href="#nogo"><img alt="yun_qi_img/img560-300-3.jpg" src=https://yunqi-tech.oss-cn-hangzhou.aliyuncs.com/spacer.gif alt="200-150" /></a>
<a href="#nogo"><img alt="yun_qi_img/img560-300-4.jpg" src=https://yunqi-tech.oss-cn-hangzhou.aliyuncs.com/spacer.gif alt="200-150" /></a>
</div>
</body>
</html>

测试可知 是真正的按需加载。而不是像之前,先加载了,滚动到相应位置 还又加载了一次。
Firebug的眼睛还是雪亮的。

时间: 2024-10-31 20:12:36

jQuery lazyload 的重复加载错误以及修复方法_jquery的相关文章

jQuery 重复加载错误以及修复方法_jquery

最近在做项目的时候,遇到个问题: 父页面引入子页面,子页面引入jQuery.js文件,父页面JS依赖jQuery.js ,出现问题是,总提示JS对象无效.猜测jQuery加载顺序不是最早造成的. 父页面: 子页面: 从这里看 ,jQuery.js 是最早的咯,可是为什么其它的js都提示 属性无效呢. 后面用 IE11 的F12工具查看 JS 的加载顺序,发现 jQuery 是最早加载的,只是加页面加载完毕后,突然有个请求又加载了一次 jQuery. 原因是如下代码: 复制代码 代码如下: $(f

U盘图标显示错误的修复方法

  U盘图标显示错误的修复方法          你遇到过当U盘连接电脑时,在"我的电脑"里的U盘图标竟然跟普通文件夹一样,就算用杀毒这些工具也没有用,不用担心,试一下介绍的以下这种方法: 依次点击"开始","所有程序"," 附件","记事本". 然后把以下的源代码拷到记事本里: @echo off @echo +------------------------------------------+ @ec

jquery插件lazyload.js延迟加载图片的使用方法_jquery

如果一个网页很长并且有很多图片的话,下载图片就需要很多时间,那么就会影响整个网页的加载速度,而这款延迟加载插件,会通过你的滚动情况来加载你需要看的图片,然后它才会从后台请求下载图片,最后显示出来.通过这个插件,可以在需要显示图片的时候,才下载图片,从而可以减少服务器的压力,提高页面加载速度. Lazy Load 插件原理 修改目标img元素的src属性为orginal属性,从而中断图片的加载.检测滚动状态,然后把网页可视区域中的img的src属性还原然后加载图片,从而制造了一种缓冲加载的效果.代

jquery.validate提示错误信息位置方法_jquery

本文实例讲述了jquery.validate提示错误信息位置方法.分享给大家供大家参考,具体如下: 好长时间没有用jquery.validate.js这个插件了,忘得差不多了.唉,好东西还是要经常拿出来看看的,今天用jquery.validate来做一个小东西,遇到一个问题,就是错误提示信息的位置问题,如果知道的话,很简单.以前遇到过,可是忘了,现在标记一下,将来在忘了,在回过头看看.俗话说的好,好记性不如烂笔头. 举个例子,大家就知道怎么回事了. rules: { name:{ require

jquery+ajax实现跨域请求的方法_jquery

本文实例讲述了jquery+ajax实现跨域请求的方法.分享给大家供大家参考.具体实现方法如下: 说明:这里的dataType 为  "jsonp"  :type 只能为 GET 前台请求代码如下: 复制代码 代码如下: $.ajax({  type: "GET",  url: "http://www.xxx.com/Rest/ValidAccountsExists.aspx?accounts=admin",  dataType: "j

基于jquery的手风琴图片展示效果实现方法_jquery

本文实例讲述了基于jquery的手风琴图片展示效果实现方法.分享给大家供大家参考.具体实现方法如下: 代码运行效果如下图所示: index.html页面代码如下: 复制代码 代码如下: <!DOCTYPE html> <html class=''> <head>     <title>一款基于jquery的手风琴图片展示效果demo</title>     <style class="cp-pen-styles">

JQuery实现动态添加删除评论的方法_jquery

本文实例讲述了JQuery实现动态添加删除评论的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

jquery简单实现图片切换效果的方法_jquery

本文实例讲述了jquery简单实现图片切换效果的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

JQUERY简单按钮轮换选中效果实现方法_jquery

本文实例讲述了JQUERY简单按钮轮换选中效果实现方法.分享给大家供大家参考.具体实现方法如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>按钮轮换点击效果</title> <script type="text/javascript" src=