CSS Web制作

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

2020年7月27日

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

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

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

じゅんぺいブログは、Web制作コーディングWordPress制作)の技術記事を中心に、約500記事公開しています。ぜひ他の記事も参考にしてみてください!
完全無料のプログラミングスクール『ZeroPlus Gate』
30日間でWeb制作を学べる無料のプログラミングスクールがこちら
いきなり数十万するプログラミングスクールは厳しい・・・という人のお試しに最適です。
現在は無料ですがいつ有料になるか分からないので、気になる方はお早めに👇
(有料になっていたらすいません🙇‍♂️)

\ 完全無料 /

ZeroPlus Gate公式サイト

毎日先着制!

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)などにシェアすると、いいねされてフォロワーが増えたりすることがあるよ!

 

  • この記事を書いた人

じゅんぺい

37歳からWeb制作とブログ開始。Web制作歴5年目でコーディングとWordPressオリジナルテーマ制作が中心。これまで120件以上を納品。当ブログ月間最高15万PVで、370記事以上はWeb制作の技術記事。コンテンツ販売→累計売上1200万円&1500部超え。X(旧Twitter)フォロワー7200人以上。2024年3月からブログの経験を活かしてライターとしても活動を開始。

-CSS, Web制作
-