Gsapを使用した
メインビジュアルのアニメーション #2/2

はじめに
概要
前回はGsapを使用してメインビジュアルアニメーションを実装しました。今回はそれに加えて、ローディングアニメーションを追加し、アニメーションの範囲を広げたものを実装していきたいと思います。
※本記事の情報は執筆時点のものであり、閲覧時点では変更されている可能性があります。また、ご利用の環境によっては、本記事の内容が正常に動作しないことがあります。最新の情報については、公式サイトなどでご確認ください。
実装のポイント
ポイント解説
– 画面のロード時に、ローディング以外のコンテンツがちらつかないように設定しましょう。
– Webサイトの基本的な仕組みは、HTMLが読み込まれ、その後にCSSが適用され、最後にJavaScriptが実行されることです。この流れを理解し、それに基づいてコードを記述するようにしましょう。
– メインコンテンツにローディング画面を被せるのではなく、以下のように別で管理する方がわかりやすいです。
<body>
<!-- ローディングアニメーション -->
<div class="mv-content relative js_0_2">
<div class="loading absolute top-0 left-0 right-0 bg-[#fff]">
<div class="loading__inner w-[100%] h-[100vh]">
<div class="loading__wrap flex flex-col justify-center h-[100vh]">
<h1 class="flex flex-col h-[50vh] items-center justify-center text-[2rem]">
<span class="p-10 js-span inline-block js_0 overflow-hidden">loading-animation</span>
</h1>
</div><!-- /.loading__wrap -->
</div><!-- /.loading__inner -->
</div><!-- /.loading -->
</div><!-- /.mv-content -->
<!-- ここからメインコンテンツ -->
<div id="global-container">
<div id="container">
<div class="main-container opacity-0 invisible js_0_3">
<div class="content-cover flex absolute top-0 left-0 right-0 w-[100%] h-[100vh]">
<span class="overflow-hidden w-[20%] flex">
<span class="js_1 bg-black w-[100%]"></span>
</span>
<span class="overflow-hidden w-[20%] flex">
<span class="js_1 bg-black w-[100%]"></span>
</span>
<span class="overflow-hidden w-[20%] flex">
<span class="js_1 bg-black w-[100%]"></span>
</span>
<span class="overflow-hidden w-[20%] flex">
<span class="js_1 bg-black w-[100%]"></span>
</span>
<span class="overflow-hidden w-[20%] flex">
<span class="js_1 bg-black w-[100%]"></span>
</span>
</div> 上記はローディングを実装する一例です。以下のような流れを意識しましょう。
画面のちらつきを防ぐために、CSSであらかじめglobal-containerをdisplay: none;に設定します。
ローディング画面が終了した後、Gsapのtimelineメソッドを使用して、ローディングコンテンツをdisplay: none;にし、global-containerを表示させます。
三角形の装飾
三角形の装飾を追加し、z-indexでの重ね順を調整してアニメーションに奥行きを出しました。
loading-animation
ロゴ
- テキスト
- テキストテキスト
- テキスト
CSS
// 右上の直角三角形
.triangle {
width: 100px;
height: 100px;
background-color: red;
clip-path: polygon(100% 0%, 100% 100%, 0% 100%);
}
// 右下の直角三角形
.triangle {
width: 100px;
height: 100px;
background-color: red;
clip-path: polygon(100% 100%, 0% 100%, 100% 0%);
}
// 左上の直角三角形
.triangle {
width: 100px;
height: 100px;
background-color: red;
clip-path: polygon(0% 0%, 100% 0%, 0% 100%);
}
// 左下の直角三角形:
.triangle {
width: 100px;
height: 100px;
background-color: red;
clip-path: polygon(0% 100%, 0% 0%, 100% 100%);
}
まとめ
- Webサイトの基本的な仕組みは、HTMLが読み込まれ、その後にCSSが適用され、最後にJavaScriptが実行される
- ローディング画面とメインコンテンツを分けて管理する
- アニメーションをコントロールできる、Gsapのtimelineが便利




