我做了一个小脚本,用于输出鼠标移动的速度。我遇到的问题是,偶尔脚本会输出数字中不准确的数字,并将整个事件抛出。而且,当用户释放鼠标按钮时,脚本并不总是终止。为了解决第一个问题,我假设我可以将值放入一个数组,然后确定异常值,但是我希望这里有人能够告诉我我正在做一些愚蠢的事情,并且有一种方法可以修复我的代码它更有效率。精确计算鼠标速度
JS:
var test_obj = {
mouse_coors: function(x2) {
$(document).on("mousemove", function(e) {
var x = e.clientX,
velocity = Math.abs(x-x2);
console.log(velocity);
$(document).off("mousemove");
setTimeout(function() {
x2 = e.clientX;
test_obj.mouse_coors(x2);
}, 100);
});
$(document).on("mouseup", function() {
$(document).off("mouseup").off("mousemove");
});
},
};
$(document).ready(function() {
$('#testbox').on("mousedown", function() {
test_obj.mouse_coors(0);
});
});
HTML:
的jsfiddle:http://jsfiddle.net/mkb2t/
我没有试图让y方向。也许速度是一个用词不当,因为我不关心方向,只是随着时间的推移水平距离。谢谢! –
@tomc:好的,但你仍然忘了时间......我认为我的脚本很容易适应只有水平速度。 – Bergi
我认为超时会占用时间,因为它会在收集坐标之间产生暂停,但您的确看起来更准确! –