获取鼠标移动速度

Shi*_*agh 2 html javascript performance jquery mousemove

我没有从 stackoverflow 得到确切的解决方案/计算,所以我提出了一个问题

var timestamp = null;
var mY = 0;
$(document).mousemove(function(e) {
    var now = Date.now();
    currentmY = e.pageY;



    mY = e.pageY;
    timestamp = now;
});
Run Code Online (Sandbox Code Playgroud)

当鼠标移动垂直角度时,我需要获取速度值。

https://jsfiddle.net/58tjr9o1/

Der*_*lin 5

速度就是距离除以花费的时间:

speed = distance / time
Run Code Online (Sandbox Code Playgroud)

距离是currentmY - mY,而时间是now - timestamp。所以最后,你得到:

var timestamp = 0;
var mY = 0;
$(document).mousemove(function(e) {
    var now = Date.now();
    currentmY = e.screenY;

    var dt = now - timestamp;
    var distance = Math.abs(currentmY - mY);
    var speed = Math.round(distance / dt * 1000);
    console.log(dt, distance, speed);
    document.getElementById("speed").innerHTML = speed;

    mY = currentmY;
    timestamp = now;
});
Run Code Online (Sandbox Code Playgroud)

请注意* 1000, 因为时间戳以毫秒为单位。速度在这里以像素/秒单位

看到这个更新的小提琴