速報

AWS Virtual Engineering Workbenchのテンプレート注入を修正|公開用Lambdaの再配備を確認

CATEGORY

【CSS】マウスオーバーで画像が拡大・縮小するアニメーション

※本ページのリンクにはプロモーションが含まれています。

【CSS】マウスオーバーで画像が拡大・縮小するアニメーション

目次

CSSでマウスオーバー時に画像を拡大・縮小するアニメーションのご紹介です。

ブログのアーカイブページで画像を含むリンク要素にマウスカーソルを乗せると、画像だけが少し拡大するアニメーションをご覧になったことがあるかと思います。

マウスカーソルがあたっていることが視覚的にわかるため、色々なサイトで取り入れられていますね。

本記事では上記アニメーションの実装方法を詳しくご紹介しています。

では、解説していきます。

スポンサーリンク

共通のHTMLを作成する

マウスオーバーで画像を拡大もしくは縮小させる、画像を含むHTMLを作成します。最近はカードの形をしたパネル全体をaタグで囲んているケースが多いので、同じようなHTMLで作成していきます。

<a href="#">
  <div class="image">
    <img src="https://into-the-program.com/uploads/modal-window.jpg" alt="">
  </div>

  <h2>Lorem ipsum</h2>
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
</a>

マウスオーバーで画像を拡大させるアニメーション

まずは拡大するアニメーションからご紹介します。

流れとしては下記のようになるかと思います。

  • 要素にマウスカーソル<乗せる/li>
  • 要素の画像が拡大する

では早速、上記でご紹介したHTMLにCSSを定義してみましょう。

CSS

a {
  display: block;
  width: 100%;
  margin: 28px auto 0;
  color: #000;
  text-decoration: none;
}

a .image {
  height: 100px;
  overflow: hidden;
}

a .image img {
  width: 100%;
  height: auto;
  transition: .3s;
}

a:hover .image img {
  transform: scale(1.5);
}

下記はマウスオーバーで画像が拡大するアニメーションのデモになります。

DEMO

See the Pen gJZvQO by ryoy (@intotheprogram) on CodePen.

リンクにマウスカーソルを乗せると画像が少し大きくなったかと思います。

本記事での画像の拡大はtransformのscale関数を使用して実現しています。widthやheightを指定して大きくすることも可能ですが、transformのscaleは主要ブラウザでは対応済みとなりますので、transformを使用することをおすすめします。

注意点として、上記のデモでは隠していますが、画像が拡大した際に内部的には親要素からはみ出す形となります。親要素には「overflow: hidden」を設定して、はみ出した画像が要素外に表示されないようにしておきましょう。

スポンサーリンク

マウスオーバー時に画像を縮小させるアニメーション

続いて、画像を縮小させるアニメーションのご紹介です。

処理の流れは拡大する際と同様になります。違いとしましては、デフォルトの画像にscaleをあてて拡大した状態にしている点です。マウスカーソルを乗せると拡大した画像が元のサイズに戻るイメージになります。

CSS

a {
  display: block;
  width: 30%;
  margin: 28px auto 0;
  color: #000;
  text-decoration: none;
}

a .image {
  height: 100px;
  overflow: hidden;
}

a .image img {
  width: 100%;
  height: auto;
  transform: scale(1.5);
  transition: .3s;
}

a:hover .image img {
  transform: scale(1);
}

下記はマウスオーバーで画像が縮小するアニメーションのデモになります。

DEMO

See the Pen Image Hover Scale Animation02 | CSS by ryoy (@intotheprogram) on CodePen.

最後に

本記事でご紹介したマウスオーバーで画像拡大・縮小するアニメーションはアーカイブページのリンクだけではなく、サイドバーや関連記事にも簡単に実装することができますので、ぜひ色々なサイトで活用していただければと思います。

以上、CSSでマウスオーバーで画像が拡大・縮小するアニメーションのご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク