1

私は彼が開発しているウェブサイトで友人を助けています、そして私たちは要求に応じて画像をプリロードするのに問題があります。基本的に、ユーザーが製品のサムネイルをクリックすると、<div>大きな画像のスクロールカルーセルを含むスライドが下にスライドします。合計で約20MBの画像を読み込むことができるため(すべてを行った場合)、ページの読み込み時に画像を事前に読み込むことはできません。

約4つの画像のプリロードを開始し、完了するとコールバック関数を持つjavascript関数を呼び出す方法はありますか?

ありがとう!PSページでjQueryを使用しています...

4

1 に答える 1

3

画像のプリロードは、次のコードを使用して実行できます。

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

画像でイベントを使用することもできるため、load1つの画像が完了したときにコールバックを行うことができます。4つの画像が読み込まれた後にコールバックを起動する問題を解決するには、なんらかのカウンターが必要になります。

おそらく、次のコードが機能する可能性があります(テストされていません):

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);
        }
      }
    });
  });      
}
于 2010-05-29T22:45:00.293 に答える