マウスpressとreleaseの間のミリ秒数を測定する方法はありますか?
クロージャーを作成して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
};
})();
この動作 例 を確認してください。
他のリンクは、少なくとも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>
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
2つのグローバル変数を使用して、マウスダウンとマウスアップの時間を記録し、減算することができます