yStandardに実装したローディング画面のご紹介です。
どのテーマでもおkと思われます。
こちらのサイト様のコードを利用させていただきました!ありがとうございます!
jQueryのCDNはご自分のブログに入ってなかったら導入しておいてくださいね。
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);
}
}
以上です〜。