DESIRERY

jQuery 複数画像のローディング

JavaScriptで複数画像を読み込む際のローディング処理。全て読み込んでからエフェクトをかけたい場合などで使えます。

ライブラリはいつもどおりjQuery 1.3.2。やり方は単純にloadを使います。1枚画像であればimgタグにonloadが手軽。

下記ソースはeach内で呼び出している関数。XMLを読み込んでループ処理という流れ。

  1. function loadHandler(obj) {
  2. var li = d.createElement("li");
  3. var img = d.createElement("img");
  4. $(img).attr({"src": obj.find("src").text(), "class":"reflect rheight10 ropacity40"});
  5. $(li).append(img);
  6. $("#container> ul").append(li);
  7. $("#container> ul").css("display", "none");
  8. $(img).load(
  9. function()
  10. {
  11. if($("#container> ul").get(0).count-- == 1) rendering();
  12. }
  13. );
  14. }

  1. XML読み込み
  2. lengthをul Elementのcountというプロパティに挿入
  3. eachでloadHandler()呼び出し
  4. DOM Elementの準備とimg要素にloadを追加
  5. 画像を読み込んだならul Elementのcountをデクリメント
  6. countと読み込み完了の回数がそろったら読み込み終了フラグキター
  7. rendering()呼び出して描画

n/nを読み込みました的なローディングはこれで完了。あとはローディング中や読み込み完了後のデザインを当て込むだけ。

Related Posts

Popular Posts

  1. prettyPhoto
  2. jQuery Plugin Hovtive
  3. jQuery スライド/ギャラリープラグイン
  4. jQuery Plugin hovtive 2.1
  5. WP Queryの中身