获取鼠标移动速度
问题描述:
我没有得到一个计算器精确解/度计算,所以我创建了一个问题获取鼠标移动速度
var timestamp = null;
var mY = 0;
$(document).mousemove(function(e) {
var now = Date.now();
currentmY = e.pageY;
mY = e.pageY;
timestamp = now;
});
我需要一个速度值,当鼠标移动垂直角度。
答
的速度只需要简单地花时间划分的距离:
speed = distance/time
距离只是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;
});
不是* 1000
,因为时间戳是毫秒。速度在这里_pixels /秒`。
答
下面的代码将始终与ID =“更新速度”跨度更新鼠标的垂直运动速度。代码是不言自明的,它只是保存当前位置,前一个位置,当前时间和前一个时间,然后使用此公式计算速度(速度=(pos2 - pos1)/(time2 - time1))
HTML
<span id="update-speed">Update speed</span>
JS
var prev_time = new Date();
var prev_pos_y = 0;
$(document).mousemove(function(e) {
var now = new Date();
current_pos_y = e.pageY;
time_interval = now.getTime() - prev_time.getTime();
if(time_interval != 0)
{
speed = (Math.abs(current_pos_y - prev_pos_y)/time_interval);
}
else
speed = 0;
console.log(speed);
$('#update-speed').text(speed);
prev_time = now;
prev_pos_y = current_pos_y;
});
如何abt [this](https://*.com/a/6417110/3551786) – Durga
鼠标移动速度 – ShibinRagh