完成イメージが以下になります。
ラインと画像がフェードインした後に、
テキストが順番にフェードインアップするアニメーションです。
【anime.js】とスクロールで発火させるプラグインを使用してアニメーションを実装します。
【anime.js】の基本的な使用方法は以下から
サンプルコード
HTML
スクリプトの読み込み
必要なスクリプトを読み込ませます。
アニメーションは【anime.js】の他に、スクロールで発火させるためのプラグインを使用しています。
「jquery.inview」はjQueryに依存するため、合わせて読み込みます。
inviewの発火
スクロール発火用のclassを「js-inview」としてアニメーションのラップ要素に指定します。
今回の場合sectionに指定しているため、sectionが見えたタイミングで発火するようになっています。
フェードアップアニメーションの設定
ポイントはフェードインさせたい要素「anime_target」を初期表示では隠れるように「anime_fadeUpWrap」で囲います。
タイトルのラインアニメーションの設定
タイトルのラインアニメーション用のクラスに「anime_widthRight」を指定します。
CSS
アニメーション用のCSS設定
「anime_fadeUpWrap」に「overflow:hidden」、「anime_target」に「transform:translateY(-110%)」を指定して、アニメーションさせる要素が隠れるようにします。
-110%にしているのは、タイトルラインまで隠すためです。装飾が無い場合は-100%で問題ありません。
Javascript
フェードアップの関数
「js-inview」クラス内の「.anime_fadeUpWrap .anime_target」の数をカウントするための変数です。
フェードアップアニメーションがタイトルラインの後に動き出すようにするためのディレイ設定用に以下を書きます。
発火用クラス「js-inview」の「data-fadeup-delay」に指定することでフェードアップアニメーション全体のスタートを遅らせることができます。
今回はdata-fadeup-delay=“0.3”としています。
遅延させたくない要素がある場合、data-delay-reset=“on”を指定しているターゲットは遅延させないようにします。
デモの場合、メイン画像にdata-delay-reset=“on”を設定しています。
タイトルラインの関数
タイトルライン装飾はwidthを0から100%になるようにアニメーションを設定します。
inviewイベントの作成
最後にinviewイベントを作成して、フェードアップアニメーションとラインのアニメーションを発火させるようにします。
これでどの位置にアニメーションさせたい要素があっても、スクロールで表示されたタイミングでアニメーションが開始されます。
完成デモ
以下から完成したデモが確認できます。
関連リンク