【问题标题】:Jquery: Preload an image on request with a callback function?Jquery:使用回调函数根据请求预加载图像?
【发布时间】:2010-05-30 06:45:00
【问题描述】:

我正在帮助一位朋友开发他正在开发的网站,但我们无法根据请求预加载图片。基本上,当用户单击产品的缩略图时,<div> 会向下滑动,其中包括大图像的滚动轮播。总共有大约 20MB 的图像可以加载(如果你全部完成的话),所以在页面加载时预加载它们不是一个选项。

有没有一种方法可以让我们调用一个开始预加载大约 4 张图像的 javascript 函数,然后当它完成时它有一个回调函数?

谢谢! 附言我们在页面上使用 jQuery...

【问题讨论】:

    标签: javascript jquery image preload


    【解决方案1】:

    可以使用以下代码完成预加载图像:

    $('<img/'>,{'src': image_source});
    

    由于我们也可以在图像上使用load 事件,所以我们可以在完成一张图像时进行回调;为了解决加载四张图片后触发回调的问题,我们需要某种计数器。

    也许以下代码可能有效(未经测试):

    var preloadImages = function(image_links, callback) {
      var self = this;
      // assume image_links is an array here
      var count = image_links.length;
      $.each( image_links, function(){
        $('<img/>', {
          'src': this, // url
          'load': function(){
            if( --count == 0 ) {
              callback.apply(self);
            }
          }
        });
      });      
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      相关资源
      最近更新 更多