Javascript 当鼠标移动得更快时,无法捕捉所有鼠标坐标

Javascript 当鼠标移动得更快时,无法捕捉所有鼠标坐标,javascript,jquery,Javascript,Jquery,我已经写了下面的代码来计算鼠标移动的坐标 $(document).mousemove(function(e){ console.log(e.pageX + ", " + e.pageY); }); 小提琴是什么​. 我的问题是,当我慢慢移动鼠标时,我能够看到控制台中所有鼠标移动的坐标。但当我走得更快时,我看不到所有的东西。只计算了少数。我的代码有问题吗?没有。这是操作系统的设计行为。这不是浏览器的错;浏览器只提供它从操作系统获得的信息。您将需要对它们进行内插(即计算中间的点)。浏览器只会在

我已经写了下面的代码来计算鼠标移动的坐标

$(document).mousemove(function(e){
  console.log(e.pageX + ", " + e.pageY);
});
小提琴是什么​.


我的问题是,当我慢慢移动鼠标时,我能够看到控制台中所有鼠标移动的坐标。但当我走得更快时,我看不到所有的东西。只计算了少数。我的代码有问题吗?

没有。这是操作系统的设计行为。这不是浏览器的错;浏览器只提供它从操作系统获得的信息。

您将需要对它们进行内插(即计算中间的点)。浏览器只会在每一个新记号(例如每0.01秒)返回鼠标位置

令人高兴的是,鼠标位置只是偶尔检查一次,否则操作系统会立即冻结

肺泡内出血可能看起来像

var posX, posY;
$(document).mousemove(function(e){
  var points = [];
  if(posX && posY) {
      // calculate a straight line that the mouse moved over
      // It gets more difficult if you want to take e.g. 
      // the current curved path into account
      var diffX = e.pageX - posX;
      var diffY = e.pageY - poxY;
      var length = Math.round(Math.sqrt((diffY*diffY)+(diffX*diffX)));
      for(n=0;n<length;n++) {
          var pointX = posX + (n/length) * diffX;
          var pointY = posY + (n/length) * diffY;
          points.push({x:pointX,y:pointY});
      }
  }
  points.push({x:e.pageX,y:e.pageY});
  posX = e.pageX;
  poxY = e.pageY;
  for(point in points) {
      console.log(point.x + ", " + point.y);
  }
});
var-posX,posY;
$(文档).mousemove(函数(e){
var点=[];
if(posX&&posY){
//计算鼠标移动过的直线
//如果你想学英语,那就更难了。
//将当前曲线路径考虑在内
var diffX=e.pageX-posX;
var diffY=e.pageY-poxY;
变量长度=Math.round(Math.sqrt((diffY*diffY)+(diffX*diffX));

对于(n=0;nNo,如果鼠标移动过快,则可能是因为勾号太慢而无法记录所有鼠标移动。但是,您可以计算两个坐标之间的直线。请提供关于“您将需要对它们进行内插(即,计算它们之间的点)”的示例。添加了一个示例实现来回答!非常感谢您花费时间。但我看不出区别:-(您应该自己做1、2、3和4。当然,还要记录您计算的分数。这没那么难:-)所以我给你写了这一切…你仍然可以自己做这件事,而不需要深入思考。你明白发生了什么,对吗?