Web活のロゴ

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

ローディングアニメーションを1回のみ表示し
ユーザーアビリティを向上させましょう #2/2

2023.06.15jqueryの活用法。ブラウザのキャシュを活用する方法
はじめに
概要

ローディングアニメーションは、初めて訪れるユーザーに強い印象を与えるためのものです。しかし、2回目以降はロード時間が長くなり、逆にユーザーに不満を与える可能性があります。そこで、Javascriptでブラウザのキャッシュをコントロールし、ローディングアニメーションを1回のみ表示する方法を実装します。サンプルコードを配布してますのでぜひ活用してください。実装には前回のコードを使用しますのでそちらも参考ください。

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

実装動画

実装する内容は以下の動画を参照ください。

 

サンプルコード

こちらが上記の動画のサンプルコードです。

Javascript

class Main {
  constructor() {
    this._loading();
  }

  _loading() {
    document.addEventListener("DOMContentLoaded", () => {
      var webStorage = function () {
        if (sessionStorage.getItem("access")) {
          /*
            2回目以降アクセス時の処理
          */
          // ここに記述します
        } else {
          /*
            初回アクセス時の処理
          */
          sessionStorage.setItem("access", "true"); // sessionStorageにデータを保存

          // ここに記述します
        }
      };
      webStorage();
    });
  }
}

new Main();

ブラウザのキャッシュを活用したコードはこちらです。
上部に2回目のコードを記述し、下部に初回のコードを記述します。

 

コードの解説

初回のコード

// ここに記述します
const loading = gsap.timeline();
loading
  .to(".loading", {
    // ロード時のチラつきの対策
    display: "block",
  })
  .from(
    ".js_1",
    1,
    {
      opacity: 0,
      y: 50,
    },
    2
  )
  .to(".js_1", 1, {
    delay: 0.5,
    opacity: 0,
    y: 50,
  })
  .to(".js_2", 1, {
    display: "none",
  })
  .to(".js_3", 1, {
    display: "block",
    opacity: 1,
    visibility: "visible",
    y: -10,
    delay: 1,
  });

ローディングアニメーションチラつきの対策
こちらは前回実装したコードを添付しております。1点変更したのは、loadingアニメーションのチラつきが発生していたため、CSSで調整しGsapでdisplay:blockで対応しております。

2回目のコード

// ここに記述します
          const mv = gsap.timeline();

          mv.to("#global-container", 1, {
            opacity: 1,
            visibility: "visible",
            display: "block",
          }).from(
            "#global-container",
            {
              y: 50,
            },
            "<"
          );

こちらもシンプルで、Gsapのtimelineを使用して記述しております。timelineについてはこちらを参照ください。

以上です。お疲れ様でした。実装はできましたでしょうか?何か疑問点やご質問がございましたらお気軽にご連絡ください。お問い合わせフォームはこちら

 
スポンサーリンク
まとめ
  • ブラウザのキャッシュを活用し、アニメーションを1回のみとする
  • Javascriptのコードを使用する
  • 初回のコード並びに2回目のコードそれぞれ記述する
  • アニメーションにはGsapが便利