图片延迟加载的大致的原理是,对于图片标签不是把图片的路径指定到src属性上,src属性指定一个非常小的空白图片,真正的图片地址设置到一个自定义的属性上,比如file,这样img标签就是这样:<img src="blank.jpg" file="00xx.jpg"/>或者背景直接把一张小的空白图作为背景色。
我的设计思想采用第二种:
1:先把刷新的小图片 作为图片的背景图片,根据onload判断图片是否加载完成,onload官方手册的说明:
如果绑定给window对象,则会在所有内容加载后触发,包括窗口,框架,对象和图像。如果绑定在元素上,则当元素的内容加载完毕后触发。
注意:只有当在这个元素完全加载完之前绑定load的处理函数,才会在他加载完后触发。如果之后再绑定就永远不会触发了。所以不要在$(document).ready()里绑定load事件,因为jQuery会在所有DOM加载完成后再绑定load事件。
2:error可以判断是否图片失效或者url失效:error官方手册说明:
对于error事件,没有一个公众的标准。在大多数浏览器中,当页面的JavaScript发生错误时,window对象会触发error事件;当图像的src属性无效时,比如文件不存在或者图像数据错误时,也会触发图像对象的error事件。 备注ie下失效,所以可以在最后一部全部清除背景图片
3:最后在执行清除背景图片等等善后工作
- <!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" >
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title>jQuery加载图片</title>
- <style type="text/css">
- h1{color:Green;}
- body{ background-color:#EEEEEE ; }
- #load{border:solid 1px blue; width:500px; height:333px; overflow:hidden;}
- .loading{background: url(http://www.jquery001.com/images/gif/al_loading.gif) no-repeat center center;}
- </style>
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
- <script type="text/javascript">
- $(document).ready(function() {
- var img = new Image();
- //图片加载加载后执行
- $("img").load(function() {
- //图片默认隐藏
- $(this).hide();
- //移除小动画
- $(".loading").removeClass("loading").append(this);
- //使用fadeIn特效
- $(this).fadeIn("5000");
- })
- //加载失败时的处理
- $("img").error(function() {
- <!--$("img").replaceWith("没有图片");-->
- $(this).attr("src", "http://www.blogkid.cn/wp-content/uploads/2008/04/memcached_shell_2.JPG");
- })
- //最后设置src
- <!-- .attr("src", "http://www.jquery001.com/images/demo/2010/anyixuan.jpg");-->
- <!--$(".loading").removeClass("loading")-->
- });
- </script>
- </head>
- <body>
- <h1>jQuery加载图片</h1>
- <div id="load" class="loading"> <img src="http://www.moredoo.com/Mobile/share/124650442011year6month7day23hour57min14sec.jpg" style=" height:auto" id='uu1'>
- <br />
- </div>
- <img src="http://www.jquery001.com/images/demo/2010/anyixuan.jpg" style=" float:right" id='uu1'>
- </body>
- </html>
常用的几张加载延时进度条 可以作为收藏起来
相关推荐
jquery实现图片延迟加载过程.rar
晓甜雨之前给大家也推荐过一款图片延迟加载特效,原文链接如下:jquery实现图片延迟加载和ajax方式加载页面 今天再给大家介绍一款,两者的区别在于前者有个加载的过程,后者则是渐变显示,两者的区别再此,晓甜雨...
jquery实现图片延迟加载和ajax方式加载页面.rar
有时候页面上的图片非常多,比如一个大量图片的营销型单页面,如果不采取一些延时按需要加载图片一次性读入图片,页面会加载很长时间,用户体验大大的不好。... 相关链接:jquery实现图片延迟加载过程
jq图片延迟加载
jquery Loading图片延迟加载是一款滚动页面图片延迟加载效果。
页面图片延迟加载,用起来非常方便,里面有demo,自己看一下,非常简单
jQuery网页图片延迟加载代码基于jquery-1.8.3.min.js制作,实现图片预加载效果,代码附详细中文注释,使用方便。
jquery Loading图片延迟加载特效
:图片延迟加载技术能够加快页面下载速度,减轻服务器的负荷,提高用户体验。图片延迟加载技术在各种js框架都 得到一定程度的实现。本文详细介绍了通过使用jQuery框架实现图片延迟加载功能。
jQuery滚动图片延迟加载插件【一个大神写的】
本特效没有使用专门的图片延迟加载插件,只需要一小段jQuery代码就实现了图片延迟加载,使用非常方便。在本文后面附有源码下载。 效果展示 源码下载 用到的加载中的图片: 代码如下: <!DOCTYPE html> <...
jquery 图片延迟加载插件制作tab选项卡图片异步加载
jquery.lazyload用JQ实现图片延迟加载,即在浏览器看到的地方才加载图片。
Jquery.ScrollLoading图片延迟加载,利用Jquery实现网站滚动时动态加载图片。