web-dev-qa-db-ja.com

マウスダウンとマウスアップの間のミリ秒を測定する方法は?

マウスpressreleaseの間のミリ秒数を測定する方法はありますか?

24
user166402

クロージャーを作成して2つの変数を共有し、1つは開始時間を保存し、もう1つは終了時間を保存します。次に、mouseupイベントで違いを取得します。

(function () {
    var element = document.getElementById('element'),
        start, end;

    element.onmousedown = function () {
      start = +new Date(); // get unix-timestamp in milliseconds
    };


    element.onmouseup = function () {
      end = +new Date();

      var diff = end - start; // time difference in milliseconds
    };

})();

この動作 を確認してください。

28
CMS

他のリンクは、少なくともchromeでは今は壊れているように見えるので、簡単なデモを以下に示します。

_var startTime;

window.startTimer = function() {
    startTime = new Date();
}
window.reportTime = function() {
        alert(new Date() - startTime)
}_
<button onmousedown="startTimer()" onmouseup="reportTime()">Measure click time</button>
4
Jonah

Onmousedownが発生すると、ウィンドウでonmouseupイベントをハングできます。これにより、不要なクロージャーを回避できます。

el.onmousedown = function () {
  var time = new Date(); //time in milliseconds
  window.onmouseup=function(){
    var diff=new Date()-time;
    window.onmouseup=null;
  }
};

ここで結果を確認してください: http://jsbin.com/uneqo

4
Eldar Djafarov

2つのグローバル変数を使用して、マウスダウンとマウスアップの時間を記録し、減算することができます

0
liujinmarshall