teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

文言

2021/07/06 23:52

投稿

int32_t
int32_t

スコア21933

answer CHANGED
@@ -1,3 +1,3 @@
1
1
  あらゆる[イベントに `timeStamp`](https://developer.mozilla.org/ja/docs/Web/API/Event/timeStamp) というプロパティがあり、これが 0.005ms 程度の精度だそうです。`Date` は 1ms 精度なので、`timeStamp`のほうがかなり高精度になります。ストップウォッチ開始の click イベントなどでその `timeStamp` プロパティの値を保存しておき、ストップウォッチ終了時のイベントの `timeStamp` と引き算すればよいでしょう。
2
2
 
3
- カウントアップの表示をしたい場合は、[`requestAnimationFrame()`](https://developer.mozilla.org/ja/docs/Web/API/Window/requestAnimationFrame) を用います。`requestAnimationFrame()` に渡したコールバック関数にも上記同じ精度のタイムスタンプが渡されるので、ストップウォッチ開始時間との差を高精度で計算できます。
3
+ カウントアップの表示をしたい場合は、[`requestAnimationFrame()`](https://developer.mozilla.org/ja/docs/Web/API/Window/requestAnimationFrame) を用います。`requestAnimationFrame()` に渡したコールバック関数にも上記同じ精度のタイムスタンプが渡されるので、ストップウォッチ開始時間との差を高精度で計算できます。