色が敷かれてから画像やテキストが表示されるアニメーションを作ってみよう!

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

Webサイトを見ると最初に色が敷かれてから画像などが表示、そのあと敷かれた色は非表示に…というアニメーションをよく見かけると思います。
言葉にするとややこしいですが図にすると下のような感じです。


これは、CSSのアニメーショと少しのjsで対応できます。

早速作り方の詳細を見ていきましょう。


実際にアニメーションを作ってみよう

とりあえず実際に作成したデモと、これから使用するコードをまとめておきます。

DEMO

js



CSS



HTML



上記のものを使用して解説していきます。


jqueryなどを読み込ませておく

js周りについては要素が領域に入ったらアニメーションを動かすために、『inview.js』というjQueryプラグインを使用します。

inview.js

たしかCDNも配布されていますが、3x系のjqueryで動作しないので、DLして使用するのが無難です。
領域内に表示したらクラスを付与する系のjsなどであればご都合のよいものに差し替えてOKです。

一緒にjqueryの読み込みも忘れずに。


HTMLを書く

次にHTMLを書いていきましょう。今回は画像を使用する想定です。



上記のような感じで記述します。
名前や括る要素はこの通りでなくてよいですが、括り①>括り②>画像 のようにしておくと便利です。

CSSとjsでアニメーションの設定をしていく

それでは肝となるアニメーションの設定をしていきましょう。

色が敷かれて消えていくアニメーション

色が敷かれて消えていくアニメーションは画像を囲っている直前の要素(先ほど紹介した「括り②」に該当するもの)に対して設定していきます。

まずは画像の括りに対してはrelativeを指定、要素が横に広がらないようにinline-blockを指定しておきます。
また、後述しますが画像を拡大してからの表示という動作もあるためサイズ指定、はみ出ないようにoverflowはhiddenにしておきます。

次に括りの::beforeで設定を行っていきます。親要素に対して色がいっぱい広がるように指定しましょう。
ただ始まりは色が敷かれていない状態にしたいので、width: 0;を指定しておきます。


次にアニメーションの設定をしましょう。


左から現れて、右側に消えていくという設定になっています。
%の指定によって動きのタイミングも変わるので、お好みで調整してください。
このアニメーションは領域内に入った際に発火させるものですが、その使い方はまた後程記述します。


画像が表示されるアニメーション

色が敷かれるアニメーションの設定をしたら、次は非表示になっている画像を表示させるアニメーションの設定をしましょう。

今回は画像に関しては拡大していたものが徐々に縮小されつつ、ふわっと表示されるというアニメーションを設定することにします。
とりあえずデフォルトでは透明度を0、画像サイズは1.1倍にしておきます。



次に領域内に入った時のアニメーションです。
画像が通常サイズになりつつ表示されていく、という感じの設定をしています。
こちらも動きのタイミングはお好みで調整してください。


ではアニメーションを領域内に入った際に発火させるための指定をしていきましょう。


領域内に要素が入ったときにアニメーションを発火するための設定

まずはcssではなくinview.jsに対しての設定です。
inview.jsを読み込んだすぐ下などに以下のように記述をします。
今回は『.photoArea』が画面内に入ってきたら『.move』というクラスをphotoAreaに対して付与する、という設定をしました。


これで『move』がついたときにアニメーションをする、という指定をすることが可能になります。

ということで領域内に要素が入った時のアニメーションの設定をしていきます。
上記で設定したアニメーションを使用していきましょう。

下記のように『.photoArea.move』を使って設定していきます。
これで領域内に入ってきたときにアニメーションをしてくれます。


こちらも速度などはお好みで設定してください。


以上ですべての設定が完了しました!
実際に動いているか確かめてみましょう。

DEMO



理屈がわかれば結構手軽にアニメーションの実装ができます。
ぜひ試してみてください。

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

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

関連記事

マークアップ

コーポレートサイトのアクセシビリティ、どこまで対応すべき?

コーポレートサイトにおける。 重要だと分かっていても、コーポレートサイトにどこまで反映すべきかは悩みどころではないですか? 今回は、現実的に取り組みやすい部分と、対応が難しい部分を整理してご紹介します。 一概にこれが正解、というわけではありませんが、悩んでいる方の参考になればと思います。 目次1 コーポレートサイトでの達成基準は?2 比較的対応しやすい部分2.1 画像に代替テキストを設定する2.2 見出し構造の整理(h1~h6の適切な使用)をする2.3 色や形だけに依存しない […]

Webサイト制作

はじめてのShraePoint 実践的活用事例3選【業務効率化・DX】

目次1 SharePointとは?1.1 高い機密性が特長2 SharePointの活用法2.1 1.社内マニュアルや手順書を整備する2.2 2.営業資料や契約書の保管と共有に活用する2.3 3.情報の回覧やアンケート、意見収集の場として活用3 SharePointで作成したポータルサイト4 まとめ5 8bit公式 YouTube Channelのご紹介 SharePointとは? SharePointはMicrosoftが提供する情報共有サービスです。WordやExcel、 […]

Webデザイン

【Premiere Pro】動画素材の音声を自動で文字起こしする方法

Premiere Proの機能を使って、動画素材の音声を自動で文字起こししてみましょう。起こしたテキストは、発話タイミングに合わせて字幕として表示することもできます。とても簡単にできるので、ぜひ試してみてください。 目次1 自動文字起こし機能の使い方1.1 1.テキストパネルから文字起こしを行う1.2 2.文字スタイルの変更2 8bit公式 YouTube Channelのご紹介 自動文字起こし機能の使い方 1.テキストパネルから文字起こしを行う 音声データを含んだ動画をタイ […]

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

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

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

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