欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jQuery 实现图片的依次加载图片功能

程序员文章站 2022-05-26 09:03:35
css代码: ul#portfolio{margin:0;padding:0;} ul#portfolio li{float: left;margin:0 5p...

css代码:

ul#portfolio{margin:0;padding:0;}
ul#portfolio li{float: left;margin:0 5px 0 0;width:250px;height: 250px;list-style: none;}
ul#portfolio li.loading{background: url(../images/spinner.gif) no-repeat center center;}
ul#portfolio li img{width:250px;height: 250px;display: block;}

js代码:

$(function(){
  var images=new array();
  images[0]='./images/ads_one.jpg';
  images[1]='./images/ads_two.jpg';
  images[2]='./images/ads_three.jpg';
  //获取了图像的数量
  var max=$(images).length;
  //如果包含一张以上的图像,那么创建对应的ul元素家人到wrapper div中,并且调用loadimage方法。
   if(max>0){
    //create the ul element
    var ul=$('<ul id="portfolio"></ul>');
    //append to div#wrapper
    $(ul).appendto($('#wrapper'));
    //load the first image
    loadimage(0,max);
   }
  //在loadimage方法中,循环遍历所有的图像,对每个图像创建li元素
  function loadimage(index,max){
   if(index<max){
    //利用attr方法为li元素增加了css样式,即加上了loading的gif背景。
    var list=$('<li id="portfolio_'+index+'"></li>').attr('class','loading');
    //把li添加到ul元素中
    $('ul#portfolio').append(list);
    //获取当前的li元素
    var curr=$("ul#portfolio li#portfolio_"+index);
    //创建图像元素
    var img=new image();
    //加载图像
    $(img).load(function(){
    $(this).css('display','none');
    $(curr).removeclass('loading').append(this);
    $(this).fadein('slow',function(){
      //采用回调函数的方法,在当前元素成功执行fadein方法之后 再去调用下一个元素的loadimage方法,这样就能实现多个图像的顺序加载了。
      loadimage(index+1,max);
    });
    }).error(function(){
      $(curr).remove();
      loadimage(index+1,max);
    }).attr('src',images[index]);
   }
  }
})

以上所述是小编给大家介绍的jquery 实现图片的依次加载图片,希望对大家有所帮助