会員ログイン
CSSアニメーション

CSSアニメーション 様々なデザインの実装 –おしゃれなボックス– #4

ボックスの円をうねるようなアニメーションを実装
はじめに
概要
ウェブ制作において活用できるスタイリッシュなデザインを実装します。今回はボックスのアニメーションに焦点を当てます。ボックスの円をうねるように表現したいと考えています。コードをコピペで実装できるようにまとめていますので、ぜひ活用してください。
※本記事の情報は執筆時点のものであり、閲覧時点では変更されている可能性があります。また、ご利用の環境によっては、本記事の内容が正常に動作しないことがあります。最新の情報については、公式サイトなどでご確認ください。
疑問を持つ読者のイラスト読者

CSSアニメーション 様々なデザインの実装 –おしゃれなボックス–は、最初にどこを理解するとよいですか?

著者・木村のプロフィール写真木村

どの要素を基準にするか、どの状態で見た目を変えるか、画面幅が変わっても崩れないかを順番に確認することが大切です。

話を聞く読者のイラスト読者

実際に試すときは、手順だけでなく確認方法も知っておいた方がよいでしょうか?

著者・木村のプロフィール写真木村

はい。この記事では、作業の目的から実装後の確認までを順番に整理します。自分の環境と照らし合わせながら読み進めてください。

実装動画

実装動画では、CSSアニメーション 様々なデザインの実装 –おしゃれなボックス– #4を理解・実装するために必要な考え方と、作業時に確認したい点を整理します。最初に役割を把握してから、記事内の手順へ進みましょう。

円をうねるような形にするには、以下のサイトが便利です。 FANCY-BORDER-RADIUS

実装動画で押さえたいポイント

実装動画は、コードや設定だけを切り離して覚えるより、何を変えるための処理なのかを確認してから試すと理解しやすくなります。変更前の状態を控え、作業を一つずつ反映すると、問題が起きた場所も特定しやすくなります。

実装動画の確認方法

スマートフォン、タブレット、PCの幅で確認し、横スクロールや文字の重なりがないかを見ます。マウス操作だけでなく、キーボードフォーカスや文字拡大時の見え方も確認してください。

アニメーションの実装

アニメーションの実装では、CSSアニメーション 様々なデザインの実装 –おしゃれなボックス– #4を理解・実装するために必要な考え方と、作業時に確認したい点を整理します。最初に役割を把握してから、記事内の手順へ進みましょう。

keyframes
/* `@keyframes`ルールは、アニメーションのシーケンスを定義します。
   `fluidrotate`はこのアニメーションの名前で、.anime-fluidrotate`クラスで参照されます。 */
@keyframes fluidrotate {
  
  /* アニメーションの開始と終了のステート(0%と100%)。
     これにより、アニメーションがループする際にシームレスに見えるように設定されています。 */
  0%, 100% {
    border-radius: 44% 56% 61% 39% / 69% 42% 58% 31%;
  }

  /* アニメーションの14%完了時のステート */
  14% {
    border-radius: 40% 60% 54% 46%/49% 60% 40% 51%;
  }

  /* アニメーションの28%完了時のステート */
  28% {
    border-radius: 54% 46% 38% 62%/49% 70% 30% 51%;
  }

  /* アニメーションの42%完了時のステート */
  42% {
    border-radius: 61% 39% 55% 45%/61% 38% 62% 39%;
  }

  /* アニメーションの56%完了時のステート */
  56% {
    border-radius: 61% 39% 67% 33%/70% 50% 50% 30%;
  }

  /* アニメーションの70%完了時のステート */
  70% {
    border-radius: 50% 50% 34% 66%/56% 68% 32% 44%;
  }

  /* アニメーションの84%完了時のステート */
  84% {
    border-radius: 46% 54% 50% 50%/35% 61% 39% 65%;
  }
}
keyframesを定義した後、アニメーションの名前を記述します。この名前とクラスの値を紐づけて動作させています。 .anime-fluidrotateクラス
/* `.anime-fluidrotate`はクラスセレクタで、このクラスを持つHTML要素に以下のスタイルを適用します */
.anime-fluidrotate {
  /* `animation`プロパティはアニメーションを指定するためのものです */

  /* `fluidrotate`はアニメーションの名前です。この名前は後で`@keyframes`で具体的なアニメーションの内容を定義する際に使います */
  animation-name: fluidrotate;

  /* `30s`はアニメーションの持続時間を示しています。これにより、アニメーションは30秒かけて完了します */
  animation-duration: 30s;

  /* `ease`はアニメーションのタイミング関数を指定します。この関数はアニメーションの進行速度をコントロールします。 
     ここでの`ease`は、アニメーションがゆっくり開始し、その後速度を上げ、ゆっくり終わることを意味します */
  animation-timing-function: ease;

  /* `0s`はアニメーションの開始遅延を指定します。ここでは遅延なし(0秒後に開始)を示しています */
  animation-delay: 0s;

  /* `infinite`はアニメーションの反復回数を指定します。この場合、アニメーションは無限回繰り返されます */
  animation-iteration-count: infinite;
}
上記をまとめて記述したものがこちらです。
.anime-fluidrotate {
  animation: fluidrotate 30s ease 0s infinite;
}
このようにまとめて記述できるため、可読性が高く管理しやすいです。 クラスをHTMLタグに付与
最後まで読んでいただきありがとうございます。こちらからサンプルコードをダウンロードできますので、どうぞご活用ください。

アニメーションの実装で押さえたいポイント

アニメーションの実装は、コードや設定だけを切り離して覚えるより、何を変えるための処理なのかを確認してから試すと理解しやすくなります。変更前の状態を控え、作業を一つずつ反映すると、問題が起きた場所も特定しやすくなります。

アニメーションの実装の確認方法

スマートフォン、タブレット、PCの幅で確認し、横スクロールや文字の重なりがないかを見ます。マウス操作だけでなく、キーボードフォーカスや文字拡大時の見え方も確認してください。

実装前に確認しておきたいこと

ここでは、CSSアニメーション 様々なデザインの実装 –おしゃれなボックス–を実際の制作へ取り入れる前に、準備しておきたい内容を整理します。先に作業範囲と確認方法を決めておくと、既存ページへの影響を抑えながら進められます。

作業の目的と変更範囲を決める

どの要素を基準にするか、どの状態で見た目を変えるか、画面幅が変わっても崩れないかを順番に確認することが大切です。 サンプルをそのまま貼り付ける前に、どのページ、どの要素、どの利用者へ影響するのかを書き出してください。目的が明確であれば、必要以上にコードや設定を増やさずに済みます。

元の状態へ戻せるようにする

テーマや設定を変更するときは、対象ファイルや設定値のコピーを残します。複数の変更を一度に行わず、一つ反映するたびに表示と動作を確認すると、問題が起きても原因を切り分けやすくなります。

よくあるつまずきと確認方法

CSSアニメーション 様々なデザインの実装 –おしゃれなボックス–が期待どおりに動かない場合は、コードを追加し続ける前に、読み込み順、対象要素、設定値、キャッシュの順で確認します。小さな入力ミスや確認条件の違いが原因になることも少なくありません。

変更が反映されない場合

保存したファイルと表示中のページが対応しているかを確認し、キャッシュを消して再読み込みします。ブラウザーの開発者ツールやWordPressのエラーログを確認すると、読み込み失敗や記述ミスを見つけやすくなります。

公開前の最終確認

スマートフォン、タブレット、PCの幅で確認し、横スクロールや文字の重なりがないかを見ます。マウス操作だけでなく、キーボードフォーカスや文字拡大時の見え方も確認してください。

まとめ

  • ボックスをデザインするツール、FANCY-BORDER-RADIUSが便利
  • keyframesの設定を理解する
  • animationプロパティはまとめて記述することができる

MEMBER COMMENTS

コメント(0件)

会員ログイン後にコメントできます

記事への質問や感想をコメントで共有できます。無料会員登録後もこの記事へ戻れます。