计算鼠标移动的精确速度
效果
要达到无论在什么机器上,算出来的速度是一样的。
思路
计算两次mousemove之间的位移和时间,就可以算出精确的速度。
不要将onMousemove的调用时间间隔看成是均等的,事实上也不是均等的,而是根据机器的运行状况实时调整的,所以两次调用之间的时间间隔不能看成是单位时间。
示例
var preX = 0;
var preTime = undefined;
document.addEventListener("mousedown",onMouseDown);
function onMouseDown(event){
preTime = undefined;
document.addEventListener("mousemove",getVolecity);
document.addEventListener("mouseup",onMouseUp);
}
function onMouseUp(event){
document.removeEventListener("mousemove",getVolecity);
}
/**
* 计算速度
* @param event
*/
function getVolecity(event){
var currTime = Date.now();
if(typeof preTime != "undefined"){ //跳过第一次
var dist = event.clientX - preX;
var time = currTime - preTime;
var volecity = dist/time;
console.log("volecity:"+volecity);
}
preX = event.clientX;
preTime = currTime;
}本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!