wordpressで作成中のローディングアニメーションですが、wordpressのフックを使ってクリック操作すればローディングアニメーションを表示したいです。
フックを学習中ですが、関数操作が苦手のため、完成できないでいます。
JavaScript ファイルをPHP側から読み込みするところから、JSでロードが完了したらローディング画面部分が動作するようにするところまでの
コードレビューをお願いします。
ネットから拾ってきたコードを組み合わせていますので、分かりづらいかと思いますが、よろしくおねがいします。
PHP
コード // ****************************************** ローディング画面 ****************************** add_action( 'wp_enqueue_scripts', 'theme_name_scripts' ); do_action(‘wp_enqueue_scripts’) function func(){ wp_enqueue_script( 'script_animation', get_template_directory_uri() . '/js/script.js', array(), '1.0.0', true ); echo '<div id="loading">'; echo '<div class="spinner"></div>'; echo '</div>' ; // コンテンツ部分 echo '<div class="gallery">'; echo '<div class="item">' ; // echo '<img src="images/img1.jpg" alt="">'; echo '</div>' ; echo '<div class="item">'; // echo '<img src="images/img2.jpg" alt="">'; echo '</div>'; // ・・・ 以下コンテンツ略 ・・・ echo '</div>'; } add_action('myaction','func'); do_action('myaction'); ?>
CSS
コード /************************************ ローディング画面 ***********************************/ #loading { width: 100vw; height: 100vh; transition: all 1s; background-color: #0bd; } .spinner { width: 100px; height: 100px; margin: 200px auto; background-color:yellow; border-radius: 50%; animation: sk-scaleout 3.0s infinite ease-in-out; } /* ローディングアニメーション */ @keyframes sk-scaleout { 0% { transform: scale(0); } 100% { transform: scale(1.0); opacity: 0; } } /* コンテンツ部分の装飾 */ .gallery { display: grid; gap: .5rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); } img { width: 100%; height: 200px; object-fit: cover; } .loaded { opacity: 0; visibility: hidden; }
Javascript
コード window.onload = function() { script_animation=document.querySelector(".css_animation").addEventListener("click",function(){ const spinner = document.getElementById('loading'); spinner.classList.add('loaded'); }); }
まだ回答がついていません
会員登録して回答してみよう