画像をhoverして時にズームさせるcssを書こう

はじめに

画像にマウスをおいた時に、ズームするような物を作りたいのですが、どうしたらいいですか?
画像にマウスをおいた時にズームするような物を作るときは、まずhoverした時に 画像の倍率を変えるようにします。
なるほど・・確かにzoomしてるというより大きくなっていると考えたほうがいいですね。
そうですね。そのあと枠の大きさを決めておいて、そこからはみ出たものを非表示にすることで、画像をhoverした時にzoomしたように見えるようになるかと思います。
確かに・・・大きくなった画像を同じ大きさの窓から見るとズームしたように見えますね。
そうですね。では、作成段階をサンプルにまとめましたので、ご覧ください。

cssで画像をhoverした時にzoomさせてみよう

画像をhoverした時に、単純に大きくした場合は、次のようなコードになります。

cssで画像をhoverした時にtrasform:scaleで大きくします

<div class="sample_box">>img src="画像のURLが入ります。"></div>
.sample_box{
 width:300px; // サイズがサンプルなので適時変更してください。
 margin:0 auto; //サンプルで中央に寄せたいので書かせていただいております。
}
.sample_box img:hover{
  transform:scale(1.2,1.2);
}

cssで画像をhoverした時に単純にzoomさせた時のサンプル

上記のように.sample_boxの大きさを超えて画像が大きくなっていることが確認できるかと思います。
HTMLはこのままの状態で、はみ出た部分を非表示にするようにすることで、枠内でズームすることができるようになります。

cssで画像がzoomした時にはみ出た部分を非表示にしてみよう

上記のcssの.sample_boxに1行追加させます。

.sample_box{
 width:300px; // サイズがサンプルなので適時変更してください。
 margin:0 auto; //サンプルで中央に寄せたいので書かせていただいております。
 overflow:hidden; //これを記述することではみ出た部分を非表示にします。
}

cssで画像がzoomした時にはみ出た部分を非表示にした時のサンプル

上記のサンプルのように300px内でzoomするようになります。
これでhoverした時に画像がzoomして見えるようになりました。
あとは、上記のコードに、以下のように変化する時間を記述することで、よりアニメーションらしくなります。

.sample_box{
 width:300px; // サイズがサンプルなので適時変更してください。
 margin:0 auto; //サンプルで中央に寄せたいので書かせていただいております。
 overflow:hidden; //これを記述することではみ出た部分を非表示にします。
}
.sample_box img{
 transition:1s all;
}
.sample_box img:hover{
  transform:scale(1.2,1.2);
  transition:1s all;
}

これで、アニメーションらしくhover時にzoomするようになったかと思います。

関連記事

  1. 見出しの前に三角形をつけてみよう

  2. htmlの文字化け

  3. hoverした時に文字の間隔をつかってアニメーションしてみよう

  4. ちょっと複雑なテーブルをHTMLで作ろう

  5. videoタグを使って動画を埋め込んでみよう

  6. 特定の番号の要素のcssだけ変更してみよう

2024年5月
 12345
6789101112
13141516171819
20212223242526
2728293031  
Translate »