実際のサンプルでアニメーション解説 [採用サイト編]【CSS/JS】

  • このエントリーをはてなブックマークに追加


WEBサイト作成時にこのアニメーションがよくわからない…ということがあると思います。
今回は弊社で作成したサンプルを使用しながら解説していきます。
初歩的なアニメーションの知識はある、という方向けの記事です。

参考にするサンプルサイトはこちらから

サンプルサイト

inview.jsを読み込ませる

今回は場所によっては『inview.js』というライブラリを読み込ませて、使用しています。
これを使うとスクロールをして表示領域に入った時にイベントを発生させることができます。


一緒にjqueryの読み込みもさせてください。
CDNも配布されていますが、3x系のjqueryで動作しないので、使用しているものによってはDLして使用するのが無難です。

あとは読み込ませたすぐ下にこのように記述しておきます。
記述の内容としては、まず『inview』というclassをトリガーにします。
このトリガーが視界に入ったら『is-show』というclassを付与します。これが付与されることでアニメーションイベントを発生させることができます。


おそらく表示するタイミングを調整したいことも多いと思うので、領域内に表示したらクラスを付与する系のjsなどであればinview.jsでなくてもご都合のよいものに差し替えてOKです。

では一つひとつ解説していきましょう。

メインビジュアル・内部のテキストがふわっと表示する


まずはメインビジュアルと内部のテキストをふわっと表示させる方法のご紹介です。

メインビジュアルをふわっと表示

HTML


CSS


HTMLに付与しているID・classを見ていきましょう。

#mainVisualについては単純にコンテンツの装飾を行ってください。

.inview については上記で説明した通り、inviewのトリガーになります。

そして今回登場した.fadeIn
ここでふわっと表示させるfadeInアニメーションの設定を行っています。
.is-show が付与されたらキーフレームで設定したアニメーションさせる、という感じになっています。
以降でも使用するので、共通で使えるようにしておくと便利です。


領域内でテキストを下から上に表示

次にテキストが領域内で下から上に表示されるときのアニメーションについてです。

HTML


CSS


ここでは上記のようにふわっと表示されるだけでなく、他とは違う、テキストが領域内で下から上に表示されるアニメーションなので独自に.fade_main を指定しています。
今回はfade_main 内の画像に対してアニメーションを指定しています。


CSSを分解して解説していきましょう。

まずここでoverflow: hidden;を指定しています。
これで画像の領域外は完全に隠した状態にして、一定の場所から画像が下から上に表示されるアニメーションを実現させています。
overflow: hidden;しないで完全に下から上に表示させるのもありなので、この辺りはお好みで調整してください。

次に、ここで画像を下にずらしてかつ透明度を0にしています。
最初はこの状態にしておいて、.is-show が付与されたときに通常の表示の状態に戻すことで、下から上にふわっと表示させる想定です。

というわけで、ここがアニメーション部分です。
先ほど上記で説明した通り、.fade_main.is-showが付与されたタイミングでアニメーションさせるという作りになっています。
fade_mainAnime というキーフレームアニメーションを作成して、それぞれタイミングなどは調整して各画像に指定しています。

ここはFirefoxでアニメーションの際に画像がぶれる現象が起こるのでそれを回避するために記述しています。
特に起きない場合は取ってください。

この部分は画像のサイズ指定です。必要に応じて調整等行ってください。

これで『メインビジュアル・内部のテキストがふわっと表示する』の完成です。

テキストが下から上にフェードイン


次はテキストが下から上にフェードインするアニメーションについて、解説します。

HTML


CSS


先ほどのメインビジュアル部分で解説したのとほぼ同様になりますが、今度は.fadeInUp のように下から上にフェードインして表示されるようなアニメーションを指定します。

ちなみに.anmdly_2s の部分についてはアニメーションをここだけ遅延させたかったので後から追加して調整しています。

これで『テキストが下から上にフェードイン』の完成です。

色が敷かれてから画像を表示

色が敷かれてから画像を表示させるアニメーションです。

HTML


CSS


.photoAreaで画像のエリアを置いているだけで、基本的にbeforeafterを駆使しています。


それではCSSを分解して解説していきます。

まずは写真のエリアについて画像サイズを指定、はみ出た部分に関しては overflow: hiddenで隠すようにしています。

次に色を敷くアニメーションです。色を乗せつつ、最初はwidthを0に指定。
そのあとトリガーが付与されたらwidthを100%にするアニメーションを設定します。

次に写真のアニメーションです。
ここでafterでデフォルトでtransform: scale(1.1);と指定しておきます。
画像のエリアを拡大しておいて、photoAnime のキーフレームアニメーションで徐々に戻していきます。

似たようなことをこちらの記事に書いてあるので参考にどうぞ。

これで『色を敷いてからのアニメーション』の完成です。

スライド

このスライドはsplideというライブラリを使用しています。

splide

軽量でオプションも豊富なのでおすすめのライブラリです。
とりあえず今回使用したものを載せます。

CSS


HTML


JS


CSSはhead部分に設置してください。今回はcdnで読み込ませています。
スライドの細かいデザイン部分については今回はここに乗せるのは割愛します。

HTML部分についての解説です。
まずは.splideで全体を囲みます。
.splide__arrows部分についてはスライドの矢印部分です。必要に応じてつけてください。
.splide__trackでulの直前を囲みます。
次に.splide__listをulに指定します。
最後に各li要素に.splide__slideをつけていきます。
少し囲みなどが多い気もしますが、最初に型を作ってしまえばそれに当てはめていくだけです。

JSについてはbodyの閉じタグの直前に置いています。
こちらもcdnのものを読んでいます。
そのあとオプションを指定していきます。
ざっくりした説明をすると、今回は自動ループするスライドを作成、PCとスマホ用でレイアウトを少し切り分ける指定をしています。

詳しくは、サイトのサンプルをご確認ください。

splide

これで『スライド』の完成です。

hoverしたら背景画像を拡大

hoverしたら背景の画像が拡大される方法です。

HTML


CSS


.aboutList liについては背景の画像の動作のためにoverflow: hidden;position: relative;を指定しておきます。
次に、afterに対して背景画像の指定をしておきます。
transitionの速度などはお好みで変更してください。
あとはliをhoverしたときにafterを拡大、必要に応じて透過させてli自体に敷いている背景色を見せます。

これで『hoverしたら背景画像を拡大』の完成です。

テキストを横から1文字ずつ表示

次にテキストを横から1文字ずつ表示する方法です。

HTML


CSS


HTMLではspan1つ1つに対して.inviewを指定しています。

CSSではspanにテキストのアニメーション速度、透明度、横にどれぐらいずらすかを指定しています。
そのあとまとめて.is-show がついた際の透明度・ずらした分を元に戻す指定を行います。
あとは1つ1つ、アニメーション開始のタイミングを調整します。

これで『テキストを横から1文字ずつ表示するアニメーション』の完成です。

hoverしたら背景色を横から敷く

最後に、hoverしたら背景色を横から敷くアニメーションです。

HTML


CSS



とりあえず.entryBtn aに対して、ボタンの基本スタイルを指定しています。
そして.entryBtn a spanでテキストを囲って、z-index: 2;を指定しています。
これは横から色が敷かれる際にテキストが下に潜り込んでしまうため、それを回避するためにつけています。

.entryBtn a::after については、今回内側にボーダーをつけたため指定しています。
ここもz-indexの指定を忘れずに。必要なければとってしまってもよいです。

そして.entryBtn a::before で背景色を指定します。
transformのscaleで横のサイズを0にしておきます。

そのあとは.entryBtn a:hover::before でhoverされた際の指定をします。
要素の座標を指定して、横幅を元の大きさに戻す指定をしています。
座標を変えればいろいろな方向から色を敷くことができます。

これで『hoverしたら背景色を横から敷く』の完成です。




なんとなくとっかかりずらい部分もあるかもしれませんが、試してみると案外すんなりできます。
ぜひいろいろ試してみてください!

サンプルサイト

弊社のLP制作について

執筆者:工藤[ WEBデザイナー ]

WEBデザイナー。 最近はWordPressを触るのが好きです。よろしくお願いします。

関連記事

WordPress

WordPressの会員限定記事配信プラグイン「Simple Analytics」をリリースしました!

WordPressのイベントカレンダープラグイン「Simple Analytics」をリリースしました! ※この記事は2024年10月現在の情報です。 目次1 Simple Analyticsとは?2 こんなお悩みにおすすめです3 Simple Analyticsで できること3.1 月別・週別アクセス数3.1.1 確認できる項目3.2 ページ別アクセス数3.3 外部サイトからのアクセス数3.4 地域・デバイス別アクセス数3.5 時間帯別アクセス数3.6 ページ毎の直帰率3. […]

WordPress

WordPressの会員限定記事配信プラグイン「Limited Post Maker」をリリースしました!

WordPressのイベントカレンダープラグイン「Limited Post Maker」をリリースしました! ※この記事は2024年10月現在の情報です。 目次1 Limited Post Makerとは?2 どんなシーンで使える?3 Limited Post Makerで できること3.1 オウンドメディア、ブログの記事を会員のみに配信3.2 会員登録・ログインフォーム3.3 会員情報の管理4 使い方について5 システム要件6 導入のお問い合わせについて Limited P […]

WordPress

WordPressのフォームプラグイン「Easy Form Maker」をリリースしました!

WordPressのイベントカレンダープラグイン「Easy Form Maker」をリリースしました! ※この記事は2024年10月現在の情報です。 目次1 Easy Form Makerとは?2 どんなシーンで使える?3 Easy Form Makerで できること3.1 お問合せフォームを作成3.2 質問を自由に決めてアンケートフォームを作成3.3 Webサイトへの設置はショートコード1行3.4 問合せやアンケート結果をデータベースへ蓄積3.5 複数のフォームを設置するこ […]

株式会社8bit (エイトビット)

東京都目黒区でWebサイト制作、Webシステム開発などを行っております。
コーポレートサイトやWebサービスの企画・提案を得意としており、自社での経験を元にアイデアをカタチにするお手伝いをさせていただいております。

Web制作に関するご相談はお気軽にどうぞ

弊社に制作をご依頼いただく際の費用感をご確認いただける、
見積りシミュレーションをご用意いたしました。