MENU

【初回アクセス時のみ表示】WordPressにjQueryでローディング画面を実装しました

yStandardに実装したローディング画面のご紹介です。

どのテーマでもおkと思われます。

こちらのサイト様のコードを利用させていただきました!ありがとうございます!

jQueryのCDNはご自分のブログに入ってなかったら導入しておいてくださいね。

【jQuery】ローディング画面の作り方を完全解説【コピペOK】

jQuery

サイト様のコードを元に、初回アクセスのみローディング画面としました。

<script>
$(function() {
    // sessionStorageから"loaded"フラグを取得
    var loadedFlag = sessionStorage.getItem('loaded');

    if (!loadedFlag) {
        // 初回アクセス時の処理
        $(window).on('load', function() {
            $('.loader').delay(500).fadeOut(500);
            $('.loader-bg').delay(800).fadeOut(700);

            // sessionStorageに"loaded"フラグを設定(2度目以降のアクセスで非表示にするため)
            sessionStorage.setItem('loaded', 'true');
        });
        
        setTimeout(function() {
            $('.loader-bg').fadeOut(500);
        }, 5000);
    } else {
        // 2度目以降のアクセス時の処理
        $('.loader-bg').hide(); // ローディング画面を非表示にする
    }
});

</script>

HTML部分はwp_body_openにフック

function custom_loading_screen() {
    if (is_front_page()) { // ホーム画面の条件
        echo '<div class="loader-bg">
    <div class="loader"></div>
</div>';
    }
}
add_action('wp_body_open', 'custom_loading_screen');

CSS

.loader-bg {
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  background-color: #000;
  display: flex;
  justify-content: center;
  align-items: center;
}

.loader {
  font-size: 10px;
  margin: 50px auto;
  text-indent: -9999em;
  width: 11em;
  height: 11em;
  border-radius: 50%;
  background: #ffffff;
  background: -moz-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
  background: -webkit-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
  background: -o-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
  background: -ms-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
  background: linear-gradient(to right, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
  position: relative;
  -webkit-animation: load3 1.4s infinite linear;
  animation: load3 1.4s infinite linear;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
}

.loader:before {
  width: 50%;
  height: 50%;
  background: #ffffff;
  border-radius: 100% 0 0 0;
  position: absolute;
  top: 0;
  left: 0;
  content: "";
}

.loader:after {
  background: #000;
  width: 75%;
  height: 75%;
  border-radius: 50%;
  content: "";
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}

@-webkit-keyframes load3 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes load3 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

以上です〜。

よかったらシェアしてね!
  • URLをコピーしました!
目次