速報

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

CATEGORY

【CSS】マウスオーバーでテキストが上下に分かれるアニメーション

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

【CSS】マウスオーバーでテキストが上下に分かれるアニメーション

目次

CSSでテキストが上下に分かれるマウスオーバーアニメーションのご紹介です。

テキストが上下に分かれる、というと文字だけではイメージが難しいと思いますので、まずは下記のデモをご覧いただき、テキストにマウスを乗せてみてください。

See the Pen Text Hover Animation | CSS by ryoy (@intotheprogram) on CodePen.

「Into the Program」と書かれたテキストにマウスカーソルを合わせると、テキストが真ん中の位置で上下に分かれて動いたかと思います。本記事では上記のアニメーションの実装方法をご紹介できればと思います。

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

スポンサーリンク

上下に分かれる要素を作成する

まずは上下に分かれる要素を作成します。下記のようなHTMLになります。

HTML

<div class="word">
  <span class="mask">
    <span>Into the Program</span>
  </span>
  <span class="mask">
    <span>Into the Program</span>
  </span>
</div>

なぜ同じテキストを持つ要素を二つ用意したかと言いますと、下記のイメージで実装するからです。

上記でいうところの「mask」がマウスオーバーした際に上下に分かれる要素になります。一つ目の「mask」はテキストの上半分だけを表示し、二つ目の「mask」はテキストの下半分だけを表示するようにします。こうすることで、上下に分かれるテキストを実現しています。

続いて作成したHTMLにCSSでスタイルを定義していきます。

要素にスタイルを定義する

CSSは下記の点を意識して作成します。

  • テキストの親要素「.word」の高さは実際のテキストの高さを指定する(開発ツール等で確認)
  • 下半分のテキストを表示する要素の位置を調整する

コメントにも記載しておりますので、そちらをご参照いただければと思います。

CSS

.word {
  width: 600px;
  //実際のテキストの高さを指定
  height: 48px;
  font-size: 3em;
}

.word .mask {
  position: relative;
  display: block;
  width: 100%;
  height: 50%;
  color: #fff;
  transition: all .3s;
  overflow: hidden;
}

.word .mask span {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  text-align: center;
}

.word .mask:last-child span {
  //下半分のテキスト表示位置を調整(top: -100%でも可)
  transform: translateY(-50%);
}


//マウスオーバー時の動きを設定
.word:hover .mask:first-child {
  transform: translateY(-5px);
}

.word:hover .mask:last-child {
  transform: translateY(5px);
  color: #007db9;
}

以上が実際に使用するスタイルです。本記事でご消化したHTMLと組み合わせると、冒頭のデモのようなマウスオーバーアニメーションになるかと思います。

スポンサーリンク

最後に

本記事ではテキストが上下に分かれるアニメーションをご紹介しましたが、transitionやtransformの関数を組み合わせることで色々な動きを付けることができるかと思います。ぜひ色々な内容を組み合わせて他にないユニークなアニメーションを実現していただければと思います。

以上、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などの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク