シンプルなカウントアップアニメーションが、CSSのみでできることを知り驚きました。
@propertyについてはこちら↓
【CSS】@property構文を使ってカスタムプロパティ(CSS変数)にルールを定義する
@propertyを使ってカスタムプロパティにルールを設定する方法について学びました
目次
サンプルとコード
See the Pen Untitled by ユイト (@yuito_miki) on CodePen.
今回関係のあるコードです↓
@property --count {
syntax: "<integer>";
inherits: false;
initial-value: 0;
}
.countUp {
counter-set: countUp var(--count);
animation: countUp 3s 1;
animation-fill-mode: forwards;
animation-timing-function: cubic-bezier(0.2, 0.1, 0.2, 1);
font-variant-numeric: tabular-nums;
font-size: 3rem;
}
.countUp::after {
content: counter(countUp) "件";
}
@keyframes countUp {
100% {
--count: 100;
}
}
@propertyでカスタムプロパティを登録しない場合、値が0から100にすぐ切り替わります↓
注意点として、小数点や「1,000」のようにカンマ区切りのあるカウントアップアニメーションはできません。シンプルなカウントアップアニメーションの場合、CSSのみで可能です。
参考サイト
@propertyを用いてCSSアニメーションを作成する – Qiita
はじめにこの記事では@propertyを用いたアニメーションの作り方を紹介します。これを利用することで、JavaScriptを用いて構築せざるを得なかった多くのアニメーションをCSS…
数字のカウントアップを良い感じのアニメーションで実装したい – Qiita
インフォグラフィックなどで、数字をカウントアップしたくなったときに役に立つかもしれないメモです。↓こんな感じにしたい。サンプルに使っている共通のHTML<div class…