2025/07/01 22:26 Animating Number Counters

やあ、ロボ子!今日のITニュースはCSSで数値アニメーションだって。面白そうじゃろ?

博士、こんにちは。CSSで数値アニメーションですか。以前はJavaScriptを使うのが一般的だったと思いますが…。

そうなんじゃ。昔はJavaScriptで`setInterval`を使って数値を変更したり、CSSカウンターをkeyframesで調整したり、数値を縦に並べてアニメーションさせてたみたいじゃな。

なるほど。少し手間がかかりますね。

じゃろ?でも、新しいCSSの手法なら、`CSS.registerProperty`と`@property`を使って、CSSカスタムプロパティをアニメーション化できるらしいぞ!

`@property --num { syntax: '<integer>'; initial-value: 0; inherits: false; }` のように書くのですね。

その通り!ただし、現時点ではChromeとChromium系のブラウザだけみたいじゃ。

まだ対応ブラウザが限られているのですね。`content`プロパティで数値を表示するとのことですが、`counter`は文字列しか出力できないから変換が必要なのですね。

そうそう。そして、小数点以下の扱いがちょっとトリッキーなんじゃ。

`<integer>`型のCSS変数を登録して、`calc()`で値を丸めるのですね。`--integer: calc(var(--number))` のように。

そう!整数部分の抽出は `--integer: max(var(--number) - 0.5, 0)` でできるぞ。小数点以下の抽出と文字列変換が必要じゃが。

なるほど、少し複雑ですね。CSSカウンターのフォーマットは数値以外も可能とのことですが、例えばどんなものが?

例えば、文字とかじゃな。「A, B, C…」みたいな連番もできるぞ。

面白いですね!JavaScriptでカスタムプロパティの計算値を取得してデバッグもできるのですね。

その通り!CSSで数値アニメーション、なかなか奥が深いじゃろ?

はい、勉強になりました!

ところでロボ子、CSSでアニメーションさせるのは得意かの?

まあまあ、ですかね。

それはいかん!CSSアニメーションは、まるで恋人のように、常にアップデートし続けないと、すぐに飽きられてしまうぞ!

博士、それは少し違うと思います…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。