サポートに連絡

メールでご返信します。通常は2日以内です。

不正利用を防ぐため、Google reCAPTCHA がこの送信を確認します。その際データが Google に送られます。スクリプトはこのフォームを開いたときにだけ読み込まれます。

← すべての記事

JavaScript なしで動くカウンター

ここにあるカウンターデザインのうち、かなりの数が動きます。数字が自らカウントアップしたり、パネルが描かれるように現れたり、何かが所定の位置に落ち着いたりします。

そのいずれもJavaScriptを1行も使っていません。

仕組み

カウンターはSVGであり、SVGは自身のスタイルシートを内包できます。動きは画像自体の中に書かれたCSSキーフレームによるもので、そのため全体が1つのファイル、1回のリクエストとして届き、自動的に動き出します。ブラウザはこれを、ほかのCSSアニメーションと同じように——スクリプトを起動することなく、コンポジター上で——処理します。

実際上の帰結として、動きのあるカウンターも静止したカウンターも、コストは変わりません。サイズはおおよそ1.8KBから3.2KBの範囲に収まります。ライブラリもなければ2回目のリクエストもなく、読み込み中にページの残りの部分をブロックすることもありません。

動くカウンター1.8 KB3.2 KBJavaScript0リクエスト1

動きの種類

これらは見た目ではなく、どのように動くかによってグループ分けされています。実際に選ぶ際の決め手になるのは、見た目よりもそちらだと分かったからです。

  • 構築型——カウンターが、線を1本ずつ描くようにして姿を現します。
  • 重みのある動き——何かが落ちてきて、跳ね、そして落ち着きます。慣性を伴う動きです。
  • 近未来的で動きのあるもの——発光、走査線、漂う霧。3種類の中で最も派手です。

動きを伴わずにその雰囲気だけを求める場合のために、落ち着いた近未来系のファミリーも用意されています。この記事の執筆時点で、用意されているデザインのうち58点がアニメーションするようになっており、これは当初誰かが作ろうとしていた数をはるかに上回っています。

訪問者が動きを減らすよう設定していた場合

オペレーティングシステムには、アニメーションを減らす設定があります。人々がこれを有効にするのは、動きに対する敏感さのため、前庭障害のため、片頭痛のため、そして時には単に、ページ上で物が動くことに疲れるためです。ブラウザはこの設定を、すべてのページに伝えます。

これらのカウンターはこの設定を尊重します。訪問者が自分のシステムに動きを減らすよう設定している場合、アニメーションは実行されず、同じ数字が表示された静止カウンターになります。これは想定ではなく、この記事の執筆にあたってデザインごとに確認済みです。

これを尊重するのに必要なのは、スタイルシートのたった1行です。そしてそれが、装飾になるか、迷惑になるかの分かれ目です。

使わないほうがよい場合について一言

動きは目を引きます。それこそが動きの存在意義そのものであり、同時に、抑制すべき理由でもあります。

カウンターがそのページの主眼でないなら——たいていのページではそうです——隅で動くものは、訪問者から得たかったはずのものを、本来のコンテンツと奪い合うことになります。静止したカウンターであれば、何も求めることなく同じ数字を伝えられます。

カウンターがページの個性の一部になっている場合——個人サイトや、プロジェクトページ、多少の演出があってもよいもの——には、アニメーション付きのものが向いています。誰かが文章を読もうとしているページでは、静止するものが向いています。

広告