[javascript] 処理中のLoadingを表示して、処理完了時に非表示にする方法

何かの処理を行っているときには、処理中のLoadingを表示して、処理完了時に非表示にする方法は以下の通り

 

目次

ローディングのGifをダウンロードして、サーバにアップロードする

下記WEBページで簡単にLoading gifを作成することができる。

gifをサーバにアップロードしておくこと

Loader Generator – Ajax loader

 

Javascriptの実装

ページどこかに下記Javascriptを実装する

<script>
/* ------------------------------
 Loading イメージ表示関数
 引数: msg 画面に表示する文言
 ------------------------------ */
function dispLoading(msg){
 // 引数なし(メッセージなし)を許容
 if( msg == undefined ){
 msg = "";
 }
 // 画面表示メッセージ
 var dispMsg = "<div class='loadingMsg'>" + msg + "</div>";
 // ローディング画像が表示されていない場合のみ出力
 if($("#loading").length == 0){
 $("body").append("<div id='loading'>" + dispMsg + "</div>");
 }
}
 
/* ------------------------------
 Loading イメージ削除関数
 ------------------------------ */
function removeLoading(){
 $("#loading").remove();
}
</script>

使い方例:S3にファイルをアップロードして、完了したらLoadingを非表示にする

s3_client().putObject({Key: filename, ContentType: file.type, Body: file, ACL: "public-read"},
 function(err, data){
 // if failed, alert
 if(data !== null){
 alert("アップロード成功!");
 } else {
 alert("アップロード失敗.");
 }
 removeLoading();
 });
};

 

 

CSSの実装

<style>
#loading {
 display: table;
 width: 100%;
 height: 100%;
 position: fixed;
 top: 0;
 left: 0;
 background-color: #fff;
 opacity: 0.8;
}
 
#loading .loadingMsg {
 display: table-cell;
 text-align: center;
 vertical-align: middle;
 padding-top: 140px;
 background: url("[LoadingイメージのURL]") center center no-repeat;
}
</style>

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です