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)
当鼠标移动垂直角度时,我需要获取速度值。
速度就是距离除以花费的时间:
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, 因为时间戳以毫秒为单位。速度在这里以像素/秒为单位。
看到这个更新的小提琴。