JQuery实现图片的预加载与延时加载

转自:http://www.rjboy.cn/?p=1002

预加载,

Js代码  

  1. function loadimg(arr,funLoading,funOnLoad,funOnError){
  2. var numLoaded=0,
  3. numError=0,
  4. isObject=Object.prototype.toString.call(arr)==="[object Object]" ? true : false;
  5. var arr=isObject ? arr.get() : arr;
  6. for(a in arr){
  7. var src=isObject ? $(arr[a]).attr("data-src") : arr[a];
  8. preload(src,arr[a]);
  9. }
  10. function preload(src,obj){
  11. var img=new Image();
  12. img.onload=function(){
  13. numLoaded++;
  14. funLoading && funLoading(numLoaded,arr.length,src,obj);
  15. funOnLoad && numLoaded==arr.length && funOnLoad(numError);
  16. };
  17. img.onerror=function(){
  18. numLoaded++;
  19. numError++;
  20. funOnError && funOnError(numLoaded,arr.length,src,obj);
  21. }
  22. img.src=src;
  23. }
  24. }

参数说明:
  arr:可以是存放图片路径的一个数组,也可以是选取到的img的jquery对象;
  funLoading:每一个单独的图片加载完成后执行的操作;
  funOnLoad:全部图片都加载完成后的操作;
  funOnError:单个图片加载出错时的操作。

懒加载,

Js代码  

  1. var imgonload=function(errors){
  2. /*errors:加载出错的图片数量;*/
  3. console.log("loaded,"+errors+" images loaded error!");
  4. }
  5. var funloading=function(n,total,src,obj){
  6. /*
  7. n:已加载完成的数量;
  8. total:总共需加载的图片数量;
  9. src:当前加载完成的图片路径;
  10. obj:当loadimg函数中传入的arr为存放图片路径的数组时,obj=src,是图片路径,
  11. 当arr为jquery对象时,obj是当前加载完成的img dom对象。
  12. */
  13. console.log(n+"of"+total+" pic loaded.",src);
  14. var newimg = document.createElement("img");
  15. newimg.src=src;
  16. $("body").append(newimg).fadeIn();
  17. }
  18. var funloading_obj=function(n,total,src,obj){
  19. console.log(n+"of"+total+" pic loaded.",src);
  20. $(obj).attr("src",src);
  21. $(obj).fadeIn(200);
  22. }
  23. var funOnError=function(n,total,src,obj){
  24. console.log("the "+n+"st img loaded Error!");
  25. }

调试用例,

Js代码  

  1. console.log("loading...");
  2. loadimg($("img"),funloading_obj,imgonload,funOnError);
  3. /*loadimg(["http://pic22.nipic.com/20120619/9607634_212642465144_2.jpg",
  4. "http://pic21.nipic.com/20120531/1670912_103610084349_2.jpg",
  5. "http://pic21.nipic.com/20120616/4952071_130629530136_2.jpg",
  6. "http://pic21.nipic.com/20120610/1723580_105037029000_2.jpg",
  7. "http://pic22.nipic.com/20120617/2572038_125013326121_2.jpg"
  8. ],funloading,imgonload,funOnError);*/

JQuery实现图片的预加载与延时加载

时间: 2024-10-12 17:45:18

JQuery实现图片的预加载与延时加载的相关文章

jQuery Lightbox图片放大预览

简介:jQuery Lightbox图片放大预览代码是一款可以在用户点击页面中的小图片时,将该图片的高清版本以Lightbox的方式放大显示在页面的中间,提高用户的体验度. 效果展示 http://hovertree.com/texiao/jqimg/6/ 效果图如下: 源码下载:http://hovertree.com/h/bjaf/hdhgnftp.htm HTML文件代码: <!DOCTYPE html> <html lang="zh"> <head

css+jquery 实现图片局部放大预览

今天有时间开始动手,使用css+jqueryshi实现了图片局部放大的组件,首先看看效果图: 界面设计思路如下: 1.两个div,左边放图片的缩略图 2.在左边缩略图鼠标移动的时候,区域(效果图中的网格) 3.右边放大图div,背景为缩略图的大图,在鼠标移入缩略图中,通过获取鼠标的坐标,将右侧背景图片移动到跟鼠标坐标对应的位置 4.设计时尽量,获取原大图的尺寸,和缩略图视窗计算比例,更大精度的做到左侧缩略图上表示的区域,和右侧放大部分匹配 本示例大部分编码在javascript脚本,以下列出各部

关于图片延时加载(jQuery.lazyload),影响百度搜索引擎抓取图片

昨天,SEO小帅哥告诉我说:我加的这个延时加载(jQuery.lazyload)不行啊,影响优化呢!然后我一本正经的回了句,好好,我马上改(谁叫优化这方面他是老大呢)! 我用的是jQuery.lazyload这个插件,园子里也有好多介绍这个插件的,我就不细说了.我去网上看了好多关于延时加载的方法,都是先把真实图片路径“藏起来”,用个小图代替,然后滚动(或者一系列事件)之后就替换成真实图片路径,这样优化的时候根本抓取不到图片,那怎么办呢?!. 我想了两种办法: 1.图片前面加个a链接,a链接里放图

jquery实现图片预加载

使用jquery实现图片预加载提高页面加载速度和用户体,本就为大家详细分析jquery图片预加载的实现原理. 什么时候使用图片预加载? 如果页面使用了很多不是最初加载便可见的图片,有必要进行预加载: $.preloadImages = function () { for (var i = 0; i < arguments.length; i++) { $('img').attr('src', arguments[i]); }};$.preloadImages('img/hover-on.png'

jquery实现图片预加载提高页面加载速度

使用jquery实现图片预加载提高页面加载速度和用户体 我们在做网站的时候经常会遇到这样的问题:一个页面有大量的图片导致页面加载速度缓慢,经常会出现一个白页用户体验很不好.那么如何解决这个问题 呢?首先我们会想到的是提高服务器性能,使用静态缓存等手段来加快图片的加载速度,这的确是个好方法,不过有时候我们也可以从前台找一些解决的 方法.下面我来介绍一种在实际应用中经常会使用到的js预加载的方法. 首先在输出图片的时候我们做一些处理 处理完html我们开始写js了,在这里我使用了jquery的类库

jQuery 插件开发——LazyLoadImg(预加载和延迟加载图片)

开发背景 本插件开发是近期写的最后一个插件了,接下来我想把最近研究的redis最为一个系列阐述下.当然Jquery插件开发是我个人爱好,我不会停止,在将来的开发中我会继续完善,当然也会坚持写这个系列的. 每次开发我都会说一下开发插件中用的思想和自己在开发时候的想法.这篇开发也不例外,等会我会一一叙述.上一篇提到的是代码重构思想,这一篇我想谈的是同一个插件,不同的设计思想,得到同样效果.说的有点绕,简单的说就是殊途同归的意思. LazyLoadImg 插件思想 预加载和延迟加载这个说法想必大家都有

jQuery.imgLazyLoad图片懒加载组件

一.前言 当一个页面中请求的图片过多,而且图片太大,页面访问的速度是非常慢的,对用户的体验非常不友好:使用图片懒加载,可以减轻服务器的压力,增加页面的访问量,这里主要是总结一下我自己写的图片懒加载组件jQuery.imgLazyLoad:使用该组件应在img标签中设置一个imglazyload-src属性,存放图片地址. 二.应用实例demo /** * component: imgLazyLoad 2013/12/12 华子yjh * invoking: jQuery.imgLazyLoad(

jquery插件图片延时加载实例详解(转)

jquery插件图片延时加载实例详解 效果预览:http://keleyi.com/keleyi/phtml/image/index.htm 使用方法:1.导入JS插件 <script src="http://keleyi.com/keleyi/pmedia/jquery-1.9.1.min.js" type="text/javascript"></script> <script src="http://keleyi.com/

图片预加载与懒加载

预加载与懒加载,我们经常经常用到,这些技术不仅仅限于图片加载,我们今天讨论的是图片加载: 一.什么是图片预加载与懒加载: 图片预加载:顾名思义,图片预加载就是在网页全部加载之前,提前加载图片.当用户需要查看时可直接从本地缓存中渲染,以提供给用户更好的体验,减少等待的时间.否则,如果一个页面的内容过于庞大,没有使用预加载技术的页面就会长时间的展现为一片空白,这样浏览者可能以为图片预览慢而没兴趣浏览,把网页关掉,这时,就需要图片预加载.当然这种做法实际上牺牲了服务器的性能换取了更好的用户体验. 图