Loading
Now Loading...
INDEX CATEGORY ARCHIVE RSS

IE6以前のブラウザをお使いの方へ

当ブログデザインは、IE6以前のブラウザには対応していません。
できれば、お使いのブラウザを新しいものへ更新してください。
Windows Internet Explorer 8: ホーム

スポンサー広告--:--│Edit
上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

読み込み中にNow Loading...を表示

JavaScript20:04│Edit
JavaScriptでページ読み込み中に画像等を表示する方法の紹介です。
下の画像のようなものを読み込み中のみ表示させます。
loading_image
loading_image

読み込み完了時の処理にはJavaScriptのonloadを使用します。
そのonloadで読み込みが完了したとき、JavaScriptからスタイルを指定して非表示にします。

今回はHTML、JavaScript、CSSを利用し作成します。
では早速HTMLに書く内容から書き始めます。
赤字は各々で変更してください。(書いてあるURLに飛べばどんな内容か分かると思います)

HTML
  1. <body onLoad="init()">
  2. <script type="text/javascript">
  3. document.write('<div id="loading" class="loading"><img src="http://blog-imgs-24.fc2.com/e/s/p/esperoporusted/20081116220257.gif" alt="Loading" width="32" height="32" /><br />Now Loading...<\/div>');
  4. document.close();
  5. </script>
  6. <script type="text/javascript" src="http://blog-imgs-24.fc2.com/e/s/p/esperoporusted/loading.js"></script>
2~5行目にかけてJavaScriptが有効の時に表示するhtmlを書いています。
6行目は下記のJavaScriptへのリンクです。

JavaScript
  1. /*ブラウザ毎に対応を変更*/
  2. var ld=(document.all);
  3. var ns4=document.layers;
  4. var ns6=document.all?false:true;
  5. var ie4=document.all;
  6. if (ns4)
  7.      ld=document.loading;
  8. else if (ns6)
  9.      ld=document.getElementById("loading").style;
  10. else if (ie4)
  11.      ld=document.all.loading.style;
  12. function init(){
  13. if(ns4){ld.visibility="hidden";}
  14. else if (ns6||ie4) ld.display="none";
  15. }
上記までで読み込み完了で表示が消えます。
最後にCSSで適当なデザインをします。

CSS
  1. .loading {
  2.      position: fixed;/*位置を固定*/
  3.      top: 50%;/*垂直位置中央*/
  4.      left: 50%;/*水平位置中央*/
  5.      width: 298px;
  6.      height: 151px;
  7.      margin-top: -75px;/*中央から上に高さの半分移動*/
  8.      margin-left: -149px;/*中央から左に横幅の半分移動*/
  9.      padding-top: 50px;/*内容を大体中央に*/
  10.      text-align: center;
  11.      background: url(http://blog-imgs-24.fc2.com/e/s/p/esperoporusted/loading_bg2.png) no-repeat;
  12.      color: #000;
  13.      font-family: verdana;
  14.      font-size: 12px;
  15. }


上記の方法とは別に、CSSだけを書いて読み込み中のみ表示させることも出来ます。
※JavaScriptが有効でない場合、うまく動作しません。有効でなくても多少は表示されるようです。
IE6,IE7,safari3.1,opera9.6,firefox3.0,sleipnir2.8,lunascape4.8,Google Chrome1.0にてJavaScript有効時動作確認。

HTML
  1. <head>
  2. <style type="text/css"><!--
  3. .loading {
  4.      position: fixed;/*位置を固定*/
  5.      top: 50%;/*垂直位置中央*/
  6.      left: 50%;/*水平位置中央*/
  7.      width: 298px;
  8.      height: 151px;
  9.      margin-top: -75px;/*中央から上に高さの半分移動*/
  10.      margin-left: -149px;/*中央から左に横幅の半分移動*/
  11.      padding-top: 50px;/*内容を大体中央に*/
  12.      text-align: center;/*内容を中央に*/
  13.      background: url(http://blog-imgs-24.fc2.com/e/s/p/esperoporusted/loading_bg2.png) no-repeat;
  14.      color: #000;
  15.      font-family: Verdana;
  16.      font-size: 12px;
  17. }
  18. --></style>
  19. </head>
  20. <body>
  21. <div class="loading">
  22. <img height="30" width="30" alt="Loading" src="http://blog-imgs-24.fc2.com/e/s/p/esperoporusted/20081116220257.gif" /><br />
  23. Now Loading...
  24. </div>
  25. ~中略~
  26. <style type="text/css"><!--
  27. div.loading{
  28.      visibility:hidden;
  29.      display:none
  30. }
  31. --></style>
  32. </body>
bodyの一番上から読み込み、一番下まで読み込んだ時に消えます。

注目して欲しいのが、同じクラスに上書きしているところです。
3行目では「.loading{}」、25行目では「div.loading{}」となっていますね。
これは、CSSの優先順位を利用したものです。
ちなみに「div」が余計に付いてる方が優先されています。(詳しくは「CSS 優先順位」等で検索してください)

TRACKBACK

http://esperoporusted.blog39.fc2.com/tb.php/311-eb688f53

PROFILE

HN: 柚枝 [ゆうし]
性別: ♂
仕事: 大学生
血液型: A型

MAIL




QR CODE

QR
ラティース太陽光発電