プレーンなJS/JQueryでマウスの速度を追跡する最適な方法は何ですか?私はどのくらい速くユーザーがすべての方向(上/下/左/右)でマウスを動かすかを追跡したいと思います。あなたが何かのために速度を得るマウス速度をJSで追跡する
答えて
Sparklines has a nifty exampleマウスの動きを追跡し、グラフ化します。彼らのコードは、315行目からサイトのソースで入手できます。
シンプルで効果的です。
var mrefreshinterval = 500; // update display every 500ms
var lastmousex=-1;
var lastmousey=-1;
var lastmousetime;
var mousetravel = 0;
$('html').mousemove(function(e) {
var mousex = e.pageX;
var mousey = e.pageY;
if (lastmousex > -1)
mousetravel += Math.max(Math.abs(mousex-lastmousex), Math.abs(mousey-lastmousey));
lastmousex = mousex;
lastmousey = mousey;
});
同じ方法:
speed = distance/time
acceleration = speed/time
と使用:
$(document).mousemove(function(e){
var xcoord = e.pageX;
var ycoord = e.pageY;
});
マウスは、マウスが移動するたびに座標取得します。
はい、正しい時間を持つには少なくとも2回のマウス移動が必要です。マウスを[5、5]に移動してから10秒間凍結したとします。その後、あなたはすぐに[10、5]に移動し、タイムスタンプを記録したのは[5、5]になったときに出力が10ピクセルで10ピクセルになります。私はマウスの動きを知っていますが、最初の実際の動きはそれほど重要ではありません。なぜなら、より多くのトリガーをかけているからです。しかし、私はタッチでもこれを試しています。 – treznik
私は@treznikに同意しますが、変数 "time"からどのように値を取得するかはコードからはっきりしません。 – S4M
jsfiddle @connorで表示してください – ShibinRagh
var timestamp = null;
var lastMouseX = null;
var lastMouseY = null;
document.body.addEventListener("mousemove", function(e) {
if (timestamp === null) {
timestamp = Date.now();
lastMouseX = e.screenX;
lastMouseY = e.screenY;
return;
}
var now = Date.now();
var dt = now - timestamp;
var dx = e.screenX - lastMouseX;
var dy = e.screenY - lastMouseY;
var speedX = Math.round(dx/dt * 100);
var speedY = Math.round(dy/dt * 100);
timestamp = now;
lastMouseX = e.screenX;
lastMouseY = e.screenY;
});
コードに説明を追加してください。なぜあなたはそれが答えだと思いますか?前の回答が正しくない、または非効率的ですか?あるいは、あなたはその問題に異なるアプローチを見せたいでしょうか?コードブロックを投稿するだけの答えはありません。 – Artemix
これは、間隔を使用するのではなく、より正確です。すべての反復(最初を除く)では、速度を知るでしょう。区間を使用するときは平均速度(この区間)があります。 – verybadbug
これは、あなたが、追跡を開始、一時停止して、非常に迅速に指やマウスを動かすことができ、実際に対抗する方法である(touch上で突然のフリックをするとします。ここでは
はコードがあります画面)。
var time = 200
var tracker = setInterval(function(){
historicTouchX = touchX;
}, time);
document.addEventListener("touchmove", function(){
speed = (historicTouchX - touchX)/time;
console.log(Math.abs(speed));
}, false);
私はこの例ではtouchXのみでこれを行っています。アイデアは、200ミリ秒ごとにx位置のスナップショットを撮り、それを現在の位置から取って200(速度=距離/時間)で割ることです。これにより、速度の最新情報が維持されます。時間はミリ秒で、出力は200ミリ秒あたりの移動ピクセル数になります。
- 1. JS - アニメーション背景を追跡するマウス
- 2. DIV要素でマウスを追跡する
- 3. マウス入力イベントの追跡
- 4. 動くビューの速度を追跡する
- 5. 速度で使用するJS Webリソースを追加する
- 6. 遅いマウスの速度
- 7. Javascriptマウスのトラッキング速度
- 8. Qualtrics Survey内でのマウスの追跡
- 9. Labelでマウス入力イベントを追跡する方法
- 10. Google TVでマウスの動きを追跡する方法
- 11. クロージャスクリプト/試薬/試薬の追跡マウス?
- 12. gpsデータを使って加速と速度を追跡することは可能ですか?
- 13. 複数のマウスをSDL2で追跡できますか?
- 14. JSの配列を追跡コードプッシュメソッドで追加する
- 15. デスクトップ上のマウスのクリックを追跡する方法
- 16. Windowsフォームでマウスの移動速度を調べる方法は?
- 17. Selenium WebDriverでマウスの速度を上げる
- 18. 速い列挙で索引を追跡する
- 19. Visual Studioコード:スクロール速度が速すぎてマウスで選択できません
- 20. QMainWindowはsetMouseTracking()でマウスを追跡しません
- 21. 異なる画面と解像度でマウスを追跡し、それらを関連させる
- 22. Nibなしアプリケーションでのマウス位置の追跡
- 23. クリックしてfacebookピクセルでサインアップを追跡する(JS/JQUERYコード)
- 24. 加速度計を使用してAndroidを追跡するのはどれくらい正確ですか?
- 25. ユニティでマウスの位置を追跡して表示する方法3d
- 26. pythonでマウスの動きを正確に追跡する方法、tkinter?
- 27. jqGrid - ローカル操作の速度をどのように追跡することができますか
- 28. Java AwtロボットがWindowsのマウス速度を変更します
- 29. スウィートアラートJSライブラリ - アニメーションの速度を変更
- 30. iPhoneでGPSと加速度計を使用して正確な位置を追跡する
完全なスニペットを表示します - https://gist.github.com/ripper234/5757309 – ripper234
このソリューションはマウスの距離のみを追跡しますか?なぜ距離はxとy座標の差の最大値であり、差の2乗の和ではないのですか?そして、 'mrefreshinterval'は"定義済み "属性ですか?私はあなたがそれをどのように使用するかわかりません。ありがとう。 – Dambo