前回は、CSSだけで実装する横並びのプルダウンメニューにつきまして、サンプルソースコードを交え記載いたしました。
PCではおなじみのグローバルナビゲーション、CSSだけで作成できますと他のパーツ(画像など)を準備する必要がなく、とても効率的に作成できることと思います。
今回はtransformを用いて、サムネイル画像を効果的に見せるフォトギャラリーを作成してみたいと思います。また、transformとtransitionの組み合わせにより、CSSのみでサムネイルがマウスに反応する効果を作成してみます。
という事で、それでは今回はッ、
上記について記載していこうと思います...。
まずは、サンプルDemoページ
それではサムネイルを作成します。今回のサンプルではサムネイルに触れていないときは横160×縦120px、拡大時には横320×縦240pxとなるように設定します。拡大後に画像を綺麗に見せるため、サムネイル画像は拡大後のサイズとして書き出しておきます。
HTMLは、ulを使ってコーディングし、各サムネイルは後ほど個別に効果を設定するので、idを記載しておきます。
CSSのコーディングをしていきます。ますは、サムネイルがグリッド状に並んでいるレイアウトになるようにコーディングしていきます。
今回のレイアウトではあえてCSS3の機能などは使わずに、floatを用いてコーディングを行います。liとimgのサイズは、初めに記載したとおり横160×縦120pxに固定しておきます。
基本的なレイアウトが出来上がったら、拡大した時の重ねあわせを制御するために、あらかじめ#Gallery liにposition:relative;とz-indexの初期値を設定しておきます。
また、サムネイルの装飾も行ってみます。box-shadowで影の設定も追記します。
プロ仕様の品質ホームページ用撮影サービス
売上を伸ばすECサイト運営代行サービス
次にtransformを用いて、写真が散らばっているような効果を作成します。今回のサンプルでは散らばっているような効果、およびマウスがふれた際の拡大効果のため、transformのscale(拡大)、rotate(回転)、translate(移動)を用います。
scaleには拡大率、rotateには角度、translateには横→縦の順で移動する距離を指定します。
散らばったような効果を出すため、あらかじめ指定しておいたサムネイルのidに対して、1つずつ別の値を設定していきます。値を設定する際は、拡大効果のために、scale(1.0)も一緒に設定しておきます。
マウスに反応する効果を作ります。マウスがサムネイルに触れた時に、回転と移動を元に戻し、サムネイルを2倍に拡大するような効果を設定します。 liのhover疑似クラスにrotateとtranslateを0に戻し、scaleを2.0に設定するようなtransformを設定します。
※transformを利用する際の回転や拡大の中心は、無指定の場合、対象ブロックの横50%、縦50%の位置になります。中心点を変更したい場合はtransform-originで、transform-origin:0 100%;のように指定します。
これで触れた時の効果は出来ましたが、このままでは、拡大されたサムネイルが他のサムネイルの下に隠れてしまい部分が出てきてしまいます。
そこで、hoverのスタイルにz-indexを設定します。ここに設定するz-indexは、上記で指定したz-indexよりも大きな値にします。
最後に、transitionでアニメーション効果を設定します。transitionは、通常の状態からhover状態など、状態間のスタイルの違いをアニメーションさせるためのスタイルです。サムネイルの各状態に設定されたtransformスタイルの違いをtransitionによってアニメーションさせます。
イージングの値として、あらかじめ動きが決められているキーワードには、以下のようなものがあります。
サムネイルのアニメーションは、transformをターゲットとして0.2秒でイージングにease-outを指定します。コードはサンプルCSSのようになります。以上で完成となります。
それでは前回同様、最後にソースコードをコピーして使えるようにまとめて記載してみます。
という事で今回は、CSSだけで実装するインタラクティブなフォトギャラリーをサンプルコードを交え記載してみました。
ロールオーバーとロールアウトなど、状態の変化に関するアニメーションは、上記で記載いたしましたとおり、スタイルシートだけでも実装することができます。サムネイルの数が増減しても、アニメーションを設定し直す必要がないことがメリットといえることと思います。
とりあえず、今回はここまで...。
お仕事のご依頼は下記より...、それではまた次回...。
最新の成功事例 制作実績一覧はこちら
他社との違いMK-Designが選ばれる理由を見る