数取器(カウンター)
1回押して1つ動く
1回押すと1つ動きます。押しっぱなしで速くなるのを見るなら「ギア」を選んでください。
よくある質問
押しっぱなしにしても、すぐには増えません。なぜですか?
開いたときの「長押しなし」では、押しっぱなしにしても1つだけ動きます。「間隔だけ」か「ギア」を選ぶと繰り返しますが、最初の400ミリ秒(0.4秒)はわざと繰り返しを始めません。ここを短くすると、ふつうに1回押しただけで2つ動いてしまいます。手がふるえる人が、押すつもりだけで連打の状態になってしまうのを防ぐ意味もあります。0.4秒より短く離したときは、ふつうに1つだけ動きます。
押している途中で、いちどカクッと遅くなるのはなぜですか?
1回に動く幅が上がった合図です。ずっと同じ幅のまま間隔だけ詰めていくと、幅が10倍になった瞬間に進む速さも10倍に跳ねてしまいます。実際に作ってみたら、5秒めから6秒めのあいだの1秒間だけで1620も動いてしまいました。そこで、幅を上げるたびに間隔をいちばん広い150ミリ秒に戻して、そこからまた詰め直すようにしています。もたつきは副作用ではなく、幅が変わったことを指に伝える合図でもあります。
通り過ぎてしまいそうで怖いのですが。
そのために3つの工夫を入れています。1つめは、幅が上がったら「その幅の倍数」に合わせること。×10のときは1607から1610、1620と、いつも切りのいい数で止まるので、どこで指を離しても値が読めます。2つめは、指を離した瞬間に止まること。3つめは、端に着いたらそれ以上まわさないことです。それでも通り過ぎたら、数字は直接打ち直せます。
このカウンターは、ほかのページのボタンと同じものですか?
同じものです(「間隔だけ」か「ギア」を選んだとき)。このサイトには数を増やしたり減らしたりするボタンが36ページにあり、その中身はぜんぶ同じ部品を通っています。このページはその部品をそのまま置いて、ふだんは見えない「いまの幅」と「次まで待つ時間」を横に出しているだけです。「ギア」を選ぶと、ほかのページの − と + と同じ動きになります。説明のためだけに別のものを作ると、説明と本物がずれていくので、同じ部品を使っています。
「長押しなし」でも困らない気がします。
動かす量によります。1つか2つ動かすだけなら、押しっぱなしは要りません。困るのは遠くまで動かすときです。たとえば和暦のページの西暦の欄で1600年から2026年まで動かすには426回押すことになります。押しっぱなしを入れたのは、これを指1本で数秒にするためでした。少ししか動かさない人のじゃまをしないように、最初の0.4秒は今までどおりの動きのままにしてあります。
キーボードでも速くできますか?
できます。ボタンにタブで移動して、EnterかスペースをおしっぱなしにするとOSのキーリピートが働き、押した回数ぶんだけ動きます。ただし速さを決めているのはこのページではなくお使いの端末の設定なので、指で押しっぱなしにしたときとは増え方が違います。数を大きく動かしたいときは、数字を直接打つのがいちばん速いです。
「ギア」を選んでボタンを押しっぱなしにすると、数がどんどん増えます。やり方を3つ切り替えて押し比べられます ── 押している間の「1回に動く幅」と「次まで待つ時間」を横に出すので、 速くなっていく中身がそのまま見えます。
⭐ 間隔を詰めるだけでは、遠くまで届きません
「押しっぱなしで速くする」と聞くと、繰り返す間隔を詰めることだと思いがちです。ところが、それだけだと遠くまで届きません。 1回に動く幅が1のままだと、目的の数まで動く回数がそのまま残るからです。 下の表は、0からその数まで動かすのにどれだけかかるかを計算したものです。
| 0からいくつまで | 長押しなし | 間隔だけ詰める | ギア(このサイト) |
|---|---|---|---|
| 100 | 100回 押す | 約7.8秒 | 約2.8秒 |
| 1,000 | 1,000回 押す | 約1分 | 約5.9秒 |
| 10,000 | 10,000回 押す | 約10分 | 約11.4秒 |
いちばん詰めても間隔は60ミリ秒までにしています。それより速くすると、 画面の書き換えが追いつかなくなるうえ、目で数を追えなくなります。 だから1000まで動かすのに約1分かかる ── 押し続ける道具として、これは使いものになりません。幅のほうも上げて、はじめて約5.9秒になります。
ところが、幅を上げると今度は速すぎました
幅を10倍にすると、間隔がいちばん狭いままでは進む速さもそのまま10倍に 跳ねます。実際に作って数えたら、5秒めから6秒めのあいだの1秒間だけで1620も動いていました。 これでは、いくら丸めても狙ったところで止められません。
直し方はギアです。幅を上げるたびに、間隔をいちばん広い150ミリ秒に 戻して、そこからまた詰め直します。速さが跳ねなくなるだけでなく、いちどもたつくこと自体が「幅が変わった」の合図になります。 上のカウンターで「ギア」を選んで押しっぱなしにし、 「次まで待つ時間」が急に大きくなる瞬間を見てみてください。
⭐ 通り過ぎても読めるように、切りのいい数で止めます
幅が×10になったら、単に10ずつ足すのではなく10の倍数に合わせています。1607から上げると 1617ではなく1610、次が1620。×100なら1700、1800です。 こうするとどこで指を離しても、止まった数がひと目で読めます。
この工夫は後から足したものです。もともとこのサイトのボタンはわざと長押しに対応していませんでした ── 「目的の値を通り過ぎたときに戻すのが難しい」からです。 その心配は今も本当のことなので、消したのは理由のほうではなく「だから付けない」という判断のほうでした。 心配のほうは、丸めと「離したら止まる」と「端で止まる」で潰しています。
この仕組みは、サイト全体で使っています
数を入れる欄に付いている 「−」と「+」 は、 このサイトの36ページにあります。和暦・西暦の変換の西暦の欄、年齢の計算の生まれた年、パーセントの計算の数 ── どれも同じ部品です。 このページのカウンターもまったく同じ中身を通しているので、 ここで分かったことは、そのままどのページでも使えます。
遠くまで動かしたいときは、数字を直接打つのがいちばん速いです。 押しっぱなしは「近くまで来ているけれど、あと少し動かしたい」ときや、 キーボードを出したくないときのための近道で、 打ち込みの代わりではありません。
「熟練した人のための近道を用意する」という考え方は、ヤコブ・ニールセンの ユーザビリティ10原則の7番目Flexibility and Efficiency of Use(新しいタブで開きます)に出てきます(「初心者からは隠れている近道が、慣れた人の操作を速くする」)。 速さの決め方と、ここに出した表の計算は src/core/hold.ts にあり、 単体テストで固定しています。1620 という値と 426回 は、 実際に作って数えた値です(2026年8月22日)。