コピペでtransitionを使いこなす!hoverで200%ズームインするCSSアニメーション実装

今回はhoverで画像がズームインする滑らかなCSSアニメーションを実装しました。

htmlとcssだけしか使っていません。
コードの説明や実際の動きも詳しくまとめてみたので自由にお使いください。

こちらのエフェクトのコードはすべて完全オリジナルなのでコピペ大歓迎です。

 

この記事の目次

hoverで画像が浮き上がる画像一覧のCSSアニメーション

  1. エフェクトの確認
  2. コードの確認
  3. このエフェクトのポイント!

 

1. hoverで景色が200%ズームインするCSSアニメーション

下の画像のようになります

実際の動きはこちら

 

コードの確認

 

<div class="images">
  <div class="image">
    <img src="https://images.unsplash.com/photo-1551607117-21fa129a211d?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1720&q=80">
    <span>Hover this Image</span>
  </div>
</div>
.images {
  display: flex;
  /* 子要素を横並びにする */
  width: 50%;
  padding: 4% 2%;
  box-sizing: border-box;
  height: 48vh;
  margin:0 auto;
}
.image {
  flex: 1;
  overflow: hidden;
  /* はみ出す箇所を隠す */
  transition: .5s;
  /* アニメーションの時間を指定 */
  margin: 0 2%;
  box-shadow: 0 20px 30px rgba(0,0,0,.1);
  /* ボックスに影をつける(左から水平方向の長さ、垂直方向の長さ、ぼかしの長さ、色) */
  line-height: 0;
  /* 文字の高さを指定 */
}
.image > img {
  width: 200%;
  /* デフォルトでの画像のズーム率を指定 */
  height: calc(100% - 7vh);
  /* 文字背景の高さを指定 */
  object-fit: cover;
  /* imgをimageの枠にトリミングしてはめ込む */
  transition: .5s;
  /* アニメーションの時間を指定 */
}
.image > span {
  font-size: 3.5vh;
  display: block;
  text-align: center;
  line-height: 2.0;
  /* 文字の高さを指定 */
}
.image:hover {
  flex: 1 1 50%;
}
.image:hover > img {
  width: 100%;
  height: 100%;
}
ここがポイント!
  1. flexで要素を横並びに指定
  2. box-shadowで奥行きをつけて立体感を演出
  3.  transitionを細かく指定することで複雑なアニメーションを実現
  4. object-fit: coverでimgをimageの枠にトリミングしてはめ込み
  5. overflow: hiddenではみ出す箇所を隠した

参考

そもそもWebデザインの基礎がわからない。。
そんなあなたにはこれ!

ふたご


でもなあ、独学だと心配だしプログラミングスクールで学びたい!。かといってお金はかけたくないし。。
そんなあなたにはこれ!

ふたご

完全無料で一人前のエンジニアになれるプログラミングスクールあります
  1. プログラミング学習&サポートが無料!
  2. 誰もが知っている超優良企業への就職サポート付き!
  3. 学習言語:Java、PHP、HTML、CSSなど

 

   話だけ聞いてみる