CSS Web制作

CSSアニメーションでテキストやボーダーを点滅させる方法

※ 当サイトではアフィリエイト広告を利用しています

テキストやボーダーを簡単に点滅させる方法ない?

先日行っていた案件でクリックを促すようにボタン周りを点滅させて欲しいという要望があったので、今回はその方法について解説していきたいと思います。

 

完全無料のプログラミングスクール『ZeroPlus Gate』
30日間でWeb制作を学べる無料のプログラミングスクールがこちら
  • 30日間でWeb制作を学べる
  • 完全無料
  • 現役エンジニアへの質問無制限
  • オンラインの動画学習なので時間場所を問わず勉強可能
  • 最大4回の学習サポート面談
  • 受付は1日25名までの先着制
無料なのに専属のメンターが付き、現役エンジニアへの質問も無制限という破格のサービスです。
いきなり数十万するプログラミングスクールは厳しい・・・という人のお試しに最適。
現在は無料ですがいつ有料になるか分からないので、気になる方はお早めに👇

\ 完全無料 /

ZeroPlus Gate公式サイト

先着1日25名まで!

CSSアニメーションでテキストやボーダーを点滅させる方法

それではまず今回の完成形を見てみましょう。

See the Pen
Untitled
by junpei (@junpei-sugiyama)
on CodePen.

今回作成したのは以下になります。

  • ボックスのborder色変更(aタグ)
  • 円形のborder色変更(aタグ)
  • テキストの透過率変更(pタグ)
  • テキストの色変更(pタグ)

CSSアニメーション自体はいろいろな事が出来ますが、今回は色と透過率の変化だけ解説していきます。

 

CSSの『animation』を使う

今回の点滅は『最初から常に点滅を繰り返す』という物です。

そしてこれはCSSのみで実現可能です。

まずHTMLを見てみます。

<a href="" class="btn">ボタン</a>
<p class="text-opacity">透過点滅</p>
<p class="text-color">色変更点滅</p>

次にCSSです(レイアウトのためのスタイルは省略)

/* ボタンのアニメーション */
@keyframes blinkBorder {
  0% {
    border: 6px solid #cc2200;
  }
  100% {
    border: 6px solid #efefef;
  }
}
.btn {
  animation: blinkBorder 1s ease infinite alternate;
}
/* テキストのアニメーション(透過率変更) */
@keyframes blinkOpacity {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.text-opacity {
  animation: blinkOpacity 1s ease-in-out infinite alternate;
}
/* テキストのアニメーション(色変更) */
@keyframes blinkColor {
  0% {
    color: #00bfff;
  }
  100% {
    color: #cc2200;
  }
}
.text-color {
  animation: blinkColor 1s ease-in-out infinite alternate;
}

ここでポイントとなるのは@keyframesの部分です。

ここでアニメーションの開始が0%、終了が100%となります。

今回はボーダーの色を点滅させるので、以下のように設定します。

  • ボタン:開始時の色は『#cc2200』、終了時の『#efefef』
  • テキスト1:開始時の透過率は『0%』、終了時の透過率は『100%』
  • テキスト2:開始時の色は『#00bfff』、終了時の『#cc2200』

そしてこの変化をアニメーションによって滑らかに変化させます。

それぞれ@keyframesのあとのblinkBorderblinkOpacityは任意なので分かりやすい名前で大丈夫です。

そしてアニメーションの動きをanimationというプロパティを使って再現します。

animationというプロパティはanimation関連のプロパティを一括で指定するショートハンドプロパティです。

backgroundみたいなものですね。

ここでは以下のように設定しています。

  • blinkBorder → アニメーションの名前
  • 1s → アニメーションが始まってから終わるまでの時間
  • ease → アニメーションの変化の仕方
  • infinite → アニメーションの繰り返し回数(初期値は1で『infinite』は無限)
  • alternate → アニメーションの再生方向を指定

最後のalternateがイメージしにくいかと思いますが、alternate順方向と逆方向のアニメーションを交互に繰り返します。

これを設定していないと開始から終了までは滑らかにアニメーションしますが、終了後はパッと戻ってしまいます。

戻るときも滑らかにアニメーションさせたい時は必要な項目となります。

最後にプロパティを変えるとどうなるか見てみましょう。

『アニメーションの変化の仕方』と最後に『アニメーションの再生方向を指定』だけ変化させてみます(時間を短くするとチカチカするのでゆっくり1.5秒に設定)

See the Pen
CSSアニメーションサンプル
by junpei (@junpei-sugiyama)
on CodePen.

『アニメーションの変化の仕方』については大きくは変わらないように見えるかも知れませんが『アニメーションの再生方向を指定』はalternateでないと点滅にはならないのが分かると思います。

まとめ

今回はCSSアニメーションでテキストやボーダーを点滅させる方法を解説しました。

CSSアニメーションは色んなことが出来るので、使いこなせるようになると楽しいと思います。

以上になります。

この記事が役に立ったと思ったら、シェアボタンからX(旧Twitter)などにシェアすると、いいねされてフォロワーが増えたりすることがあるよ!

 

Web制作おすすめ教材と案件獲得サービス
当ブログではWeb制作学習におすすめの教材を厳選してご紹介しています。
こちらの記事を参考に教材を購入して成果を出している人もたくさんいるので、自分に必要な教材を探してみて下さい。
また、学習面だけでなく営業面である案件獲得サービスもご紹介しています。
スキルが身についても仕事がなければ意味がないので、営業に不安がある人はこちらの記事をぜひ参考にしてみて下さい。
この記事を参考にスキルと営業力を身につけて稼げるようになりましょう!

-CSS, Web制作
-