【CSSだけ】hoverで直感的な画像拡大アニメーションの作成方法

今回は【CSSだけ】hoverで直感的な画像拡大アニメーションの作成方法をご紹介。エフェクトがついてます。簡単です。動きます。オシャレな画像一覧を作れます。レスポンシブ対応。
htmlとcssだけしか使っていません。
コードの説明や実際の動きも詳しくまとめてみたので自由にお使いください。

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

この記事の目次

【CSSだけ】hoverで直感的な画像拡大アニメーションの作成方法

  1. アニメーション動作の確認
  2. コードの確認
  3. このアニメーションのポイント!

 

【CSSだけ】hoverで直感的な画像拡大アニメーションの作成方法

 

アニメーション動作の確認

動きは下の画像のような感じになります

実際の動きはこちら

 

コードの確認

  <div class="do-animation pic-background">
      <!-- 画像を複数用意 -->
    <div class="pic">
      <img src="https://source.unsplash.com/1000x800" >
    </div>
    <div class="pic">
      <img src="https://source.unsplash.com/1000x801" >
    </div>
    <div class="pic">
      <img src="https://source.unsplash.com/1000x802" >
    </div>
    <div class="pic">
      <img src="https://source.unsplash.com/1000x803" >
    </div>
    <div class="pic">
      <img src="https://source.unsplash.com/1000x804" >
    </div>
    <div class="pic">
      <img src="https://source.unsplash.com/1000x805" >
    </div>
  </div>
/* hover後の画像一覧のアニメーション指定 */
.do-animation:hover > * {
  /* 不透明度の調整 */
  opacity: 0.4;
  /* 画像の拡大調整 */
  transform: scale(0.7);
}
/* hoverされた画像のアニメーション指定 */
.do-animation > *:hover {
  /* 画像の拡大調整 */
  opacity: 1;
  /* 画像の拡大調整 */
  transform: scale(1.2);
}
/* 画像一覧を中央に配置 */
.pic-background{
  align-items:center;
  justify-content:center;
  margin-left: 55px;
  margin-top: 10px;
  width:100%;
}
.pic img {
  width:100%;
  height: 100%;
}
/* 各画像のサイズ・配置・アニメーション速度を指定 */
.pic{
  float: left;
  margin:0%;
  background:white;
  width:29%;
  height:30%;
  /* hover後のアニメーション速度 */
  transition:.2s all;
}
ここがポイント!
  1. 画像を複数用意し中央に配置する
  2. 各々のwidth, heightを%表記としレスポンシブ対応
  3. hover前後のtransform: scaleを調整することで画像が急拡大
  4. hover前後のopacityを調整しhoverされた画像のみを強調
  5. transitionで滑らかなアニメーションを実現

参考

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

ふたご


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

ふたご

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

 

   話だけ聞いてみる