要素が回転するローディングアニメーションをJSでブログに実装しました。

ローディング画面をネイティブJSで設置しました。

以下のサイト様で紹介されていたコードをアレンジしました。

結果は以下です。カッコよく回転しながら消えるアニメーションを実装しました。

2回目以降はローディングが表示されないようにしています。

See the Pen loading-animation-rotate by hiro (@hirochanpon) on CodePen.

まず参考サイト様からのコードをわたし用にアレンジします。

HTML

<div id="loadingLogo" class="loading-anime-wrap">
  <img class="loading-anime-img" src="https:~/obake.jpg">
</div>

JS

参考サイト様そのままです。ありがとうございます。

const keyName = 'loadingviewed';
const keyValue = true;
window.addEventListener('DOMContentLoaded', () => { // DOMが完全に読み込まれた後に実行
  const loadingLogo = document.getElementById("loadingLogo");
  
  if (!sessionStorage.getItem(keyName)) {
    sessionStorage.setItem(keyName, keyValue);
    
    // 初回表示時にローディングアニメーションを表示
    loadingLogo.classList.add("show");
    // 3.5秒後にローディングアニメーションを非表示
    setTimeout(() => {
      loadingLogo.classList.remove("show");
    }, 3500);
  } else {
    // 2回目以降の処理(特に何も実行しない場合はここを空に)
    // ここに2回目以降の処理を入れることができます
  }
});

CSSです。

CSSのアニメーションはわたし独自の動きです。お使いになられたい場合は、コピーしてもアレンジしてもいいかと思います。

/* CSS for loading animation */
#loadingLogo {
  position: fixed;
  width: 100vw;
  height: 100vh;
  top: 0;
  left: 0;
  background: #222;
  z-index: 10000;
  display: none;
}
#loadingLogo.show {
  display: block;
  animation: fadein-keyframes 1s ease 2.5s 1 forwards;
}
#loadingLogo .loading-anime-img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100px; /* 幅を100pxに設定 */
  height: 100px; /* 高さを100pxに設定 */
  transform: translate(-50%, -50%) rotate(0deg);
  animation: coolAnimation 2s ease-in-out infinite;
}
@keyframes coolAnimation {
  0% {
    transform: translate(-50%, -50%) rotate(0deg) scale(1);
    opacity: 0;
  }
  50% {
    transform: translate(-50%, -50%) rotate(180deg) scale(1.2);
    opacity: 1;
  }
  100% {
    transform: translate(-50%, -50%) rotate(360deg) scale(1);
    opacity: 0;
  }
}
body {
  background: #333;
}

以上です、オープニングアニメーションがあるとブログが華やかになりますので、しつこくない程度で実装するといいと思います。

よろしくお願いしますね。コードありがとうございました。

高速・安心のWebサイト運営なら
Hostingerで決まり!

WordPressも秒速でインストール。高性能・低価格で、個人からビジネスまで幅広く対応します。

公式サイトを見る

Author