【Tips】CSSのみで数字のカウントアップアニメーションを実装する

  • URLをコピーしました!

シンプルなカウントアップアニメーションが、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のみで可能です。

参考サイト

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次