Web活のロゴ

Web制作Output&初心者のための徹底ガイド

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

2023.09.08Gsapでメインビジュアルのアニメーション
はじめに
概要

前回はGsapを使用してメインビジュアルアニメーションを実装しました。今回はそれに加えて、ローディングアニメーションを追加し、アニメーションの範囲を広げたものを実装していきたいと思います。

スポンサーリンク
※本記事の情報は執筆時点のものであり、閲覧時点では変更されている可能性があります。また、ご利用の環境によっては、本記事の内容が正常に動作しないことがあります。最新の情報については、公式サイトなどでご確認ください。

実装動画

リプレイ

loading-animation
スポンサーリンク

実装のポイント

ポイント解説

– 画面のロード時に、ローディング以外のコンテンツがちらつかないように設定しましょう。

– 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が便利