今回は animate.css と ScrollTrigger.js を使用して、WordPressのサイトにアニメーションをつけてみます。
ScrollTrigger.jsの役割
ScrollTrigger.jsは、画面のスクロールにトリガーを設定することができます。
今回はこれを利用して、画面のスクロールに合わせてアニメーションが開始するように設定します。
animate.cssとScrollTrigger.jsの初期設定
「animate.css」と「ScrollTrigger.js」は以下のリンクからダウンロードできます。
animate.css https://github.com/daneden/animate.css
ScrollTrigger.js https://github.com/terwanerik/ScrollTrigger
githubからダウンロードした「animate.min.css」と「ScrollTrigger.min.js」を子テーマに配置します。
今回は子テーマに「css」フォルダと「js」フォルダを作成し、そこに格納することにしました。
「functions.php」に以下のコードを追加します。
//ファイルの読み込み部分 wp_enqueue_style( 'anime', get_stylesheet_directory_uri() . '/css/animate.min.css'); wp_enqueue_script( 'anime-st', get_stylesheet_directory_uri() . '/js/ScrollTrigger.min.js');
<?php function my_js_function() { echo <<< EOM <script> document.addEventListener('DOMContentLoaded', function() { var trigger = new ScrollTrigger(); }); </script> EOM; } add_action( 'wp_footer', 'my_js_function' ); ?>
「style.css」に以下のコードを追加します。
下記コードの場合は、要素に invisible を設定すると 0.5 秒で非表示から表示に切り替わります。
invisible { transition: opacity 0.5s ease; opacity: 0; }
animate.cssとScrollTrigger.jsの使い方
「animate.css」と「ScrollTrigger.js」でアニメーションをつけたい要素に以下のコードを記述します。
.bounce の部分を変更することでアニメーションの種類を変えることができます。
toggle の部分を once toggle とするとアニメーションを1回のみ行うようになります。
<div class="animated" data-scroll="toggle(.bounce, .invisible) addHeight">bounce</div>
アニメーションのサンプルです。
前半の10種は「toggle」としているので、画面がスクロールされて表示されるたびにアニメーションを実行します。
後半の10種(fadeIn~,fadeOut~)は「once toggle」としているので、最初に表示された時にのみアニメーションを実行します。
fadeIn~系統のアニメーションには.invisible(不可視)を設定して、他のアニメーションには.visible(可視)を設定しています。このためfadeIn~のみ画面外で非表示となります。