jquery.inviewとAnimate.cssでスクロール時にアニメーションを追加するコードを汎用的にする

Animate.cssのアニメーションを、jquery.invewプラグインを利用して表示された時に発火させるというものです。jquery.invew側でAnimate.cssのアニメーションを一つ一つ登録して利用することも可能ですが、コードが冗長的になってしまいます。

そこでdata属性を利用してanimate__animatedクラスがある時にdata属性にあるanimate__{animationName}を追加するように記述することで汎用的に利用できます。

<div  class="animate__animated" data-animate="animate__zoomIn"></div>
$( '.animate__animated' ).on( 'inview', function( event, isInView ) {
	if ( isInView ) { //表示領域に入った時
		const animateName = $( this ).data( 'animate' );
		$( this ).addClass( animateName );
	}
} );

石井秀幸(いしいひでゆき)
Webデザイナー / WordPressエンジニア。株式会社ノクチ基地 取締役、モンゼンクリエイティブ合同会社 代表。WordPress公式コミュニティ「横浜 WordPress Meetup」オーガナイザー。WordPress歴15年以上。アクセシビリティ対応とオリジナルテーマ開発を専門とし、公式テーマディレクトリの審査基準に準拠したテーマを制作しています。