ローディングGIFを5秒間自動表示する

ユーザーがサイトにアクセスしたときに自動的にローディングGIFを表示し、5秒後に消えるようにしたいのですが、どうすればいいですか?

このスクリプトは、私が望むことをやってくれますが、自動的に実行されません。ユーザーはボタンをクリックしなければならず、これでは目的を達成できません。

<input type = "button" value = "Show image for 5 seconds" onclick = "show()"><br><br>
<div id = "myDiv" style="display:none"><img id = "myImage" src = "images/ajax-loader.gif"></div><br>

<script type = "text/javascript">

function show() {
    document.getElementById("myDiv").style.display="block";
    setTimeout("hide()", 5000);  // 5 seconds
}

function hide() {
    document.getElementById("myDiv").style.display="none";
}

</script>

もし私がこれを行うことができる任意の方法、またはそれを行うためのより良い方法がある場合は、コメントをしてください。

ソリューション

onclick="show()"を削除し、JavaScriptブロックの最後の行としてshow();` を追加するだけです。

また、私はグローバル名前空間汚染に敏感なので、次のようにします。

<script type="text/javascript">

  (function(){
    var myDiv = document.getElementById("myDiv"),

      show = function(){
        myDiv.style.display = "block";
        setTimeout(hide, 5000); // 5 seconds
      },

      hide = function(){
        myDiv.style.display = "none";
      };

    show();
  })();

</script>
解説 (8)

window.onloadは試されましたか?

というような内容で。


..snip
解説 (1)

スクリプトの最後に window.onload = show; を追加すると、ページの読み込みが終了すると同時にローダーが表示されます。 このイベントは、ページ上の要素を操作する前に、ページ全体が利用可能であることを確認するため、ユーザーがページを開いたときに行いたいことのために使用することができます。

解説 (0)