こんにちは。
ゆうや(@yuyaphotograph)です!
この記事では、
- 画像をマウスオーバーしたときに拡大させるエフェクトをCSSでどうやって実装するのか知りたい
- CSS ホバーで画像が拡大するデモを見たい
- transform: scale()を使ってみたい
という方のお悩みを解決します!
目次 [非表示]
要素を拡大/縮小させるtransform:scale()
ホバーした時に画像を拡大表示させる実装のポイントとなるのはCSSのtransform:scale()です。
transform:scale()は要素を拡大 or 縮小させるもので、scale(1.1)のように引数に縮小比率を渡して使います。
scale()の引数に1.1以上の値を指定すると拡大に。
0.9以下を指定すると縮小となります。
以下、指定方法の例です。
imgタグで画像を表示する場合
画像をimgタグで表示する際は以下のようなHTML構造で実装します。
拡大させたいimgタグをdivタグで囲っただけのシンプルな構造となっております。
以下で2種類のホバーエフェクトを紹介しますが両者とも使用するHTMLは共通です。
シンプルに拡大させるコード
ただ単にホバーで画像を拡大させたい場合は以下のCSSを使ってあげましょう〜
transition-duarationで指定しているのはアニメーションの速度ですのでそこはよしなに変更してくださいまし。
シンプルに拡大させるデモ
若干暗くして拡大させるコード
上述のコードに2行書き加えるだけで、ホバー時に画像に黒いマスクをかけることができます。
若干暗くして拡大させるデモ
divタグの背景画像で画像を表示する場合
上述した「imgタグで画像を表示する方法」ですが、ぼくが普段Web制作の案件でカードデザインの要素をコーディングする時は実はほとんどその方法は使いません。
ではどうやってimgタグを使わず画像を表示させるコーディングをするのか?
ちょっと見慣れないかもしれませんが以下のように子要素のdivタグに直接backgroundで画像パスを指定してやる方法を使うのです。
CSSは以下のように記述してあげれば上述したimgタグでのコーディング同様にホバーで画像拡大が実装できますよ!
デモ
まとめ
今回紹介したホバーエフェクトの実装方法はブログカードをコーディングする際に要求される頻度が比較的高いので覚えちゃいましょう〜
「ホバーで実装できることを増やしてスキルアップしたい!」
という方は以下の記事にも目を通してみてくださいまし〜



