ローディングアニメーションは、ユーザーに待機時間を知らせ、ページがまだ読み込み中であることを伝えるために重要です。今回は、生のJavaScriptで簡単なローディングアニメーションを作成する方法を紹介します。
ステップ1: HTMLの設定
まず、HTMLにローディングアニメーション用の要素を追加します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Loading Animation</title>
<style>
.loader {
border: 16px solid #f3f3f3; /* Light grey */
border-top: 16px solid #3498db; /* Blue */
border-radius: 50%;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
#loading-screen {
display: flex;
justify-content: center;
align-items: center;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(255, 255, 255, 0.8);
z-index: 9999;
}
</style>
</head>
<body>
<div id="loading-screen">
<div class="loader"></div>
</div>
<div id="content" style="display:none;">
<!-- ページのコンテンツ -->
<h1>ページが読み込まれました!</h1>
</div>
<script src="script.js"></script>
</body>
</html>
ステップ2: JavaScriptの設定
次に、JavaScriptでローディングアニメーションの表示と非表示を制御します。
document.addEventListener("DOMContentLoaded", function() {
// ウィンドウが完全に読み込まれたらローディング画面を非表示にする
window.onload = function() {
const loadingScreen = document.getElementById('loading-screen');
const content = document.getElementById('content');
loadingScreen.style.display = 'none';
content.style.display = 'block';
};
});
詳細説明
HTML
<div id="loading-screen">
: ローディングアニメーションの背景と中央に配置されたスピナーを含む要素。<div class="loader">
: ローディングスピナー自体。
CSS
.loader
: スピナーのスタイルを定義し、@keyframes
を使用して回転アニメーションを作成。#loading-screen
: 全画面を覆う半透明の背景を設定。
JavaScript
DOMContentLoaded
イベントリスナーを使って、DOMが完全に読み込まれたら実行されるように設定。window.onload
イベントリスナーで、ページが完全に読み込まれた時にローディング画面を非表示にし、コンテンツを表示。
この方法を使えば、簡単にシンプルなローディングアニメーションを作成できます。これを応用して、さらに複雑なアニメーションやスタイルを追加することも可能です。ぜひ試してみてください!