可能已经回答了,但是在搜索中找不到任何积极的结果。拥有一个脚本,可以使用除“正常” x,y定位。我没有使用JQuery或任何其他库,但以下是核心示例: >> fiddle 当前的问题是,移动元素时,元素有时不会更新,如下所示:当指针移动时,元素静止不动,然后大跳。出于某种原因,这种情况最常发生在缓慢移动时。 (也许这一切都完成了时间,但快速移动并不明显。)在平移到x,y时,我也看到了这种效果,但并不那么频繁。 问题是什么原因造成的,希望如何解决。 我试图添加检查时间,例如上次mousemove-event是10毫秒前什么也没做。没有任何更好的。还尝试将元素的放置置于超时中,如下所示:setTimeout(function(){ element.style.left = x + 'px'; element.style.top = y + 'px';}, 0);让浏览器完成其他工作,但没有任何更好的方法。我测试过的浏览器在Mozilla Firefox中最明显。歌剧绝对是最流畅的。 编辑:添加了一个简单的 console.log('1');而且我注意到,当机芯挂起时,日志也挂起(不记录)。就像446 events,lag,447 events一样。因此,它必须站在事件区域中未触发或类似的地方。 编辑:@kenansulayman:澄清。我不使用setTimeout()-我对此进行了测试,也使用了0,1,2,3,5,10,15,...,500+,但没有更好的结果:我也使用以下方法进行了测试:在鼠标按下时启动此命令:Drag.int = 0;Drag.eint = setInterval(function(){Drag.int++}, 1); /* 1 being variable. */然后在move上添加console.log(Drag.eint)-当发生移动的滞后/停止时-Drag.int增加1。如:447448449 <-- lag, movement stop, aprox 1-1.5 seconds450451如果我说的话包括setTimeout()也不行超时10或20。如果我完全不明白要点,请告诉我。 最佳答案 无法解决客户端滞后情况。但是,我建议对] x | y [坐标进行简单的插值。也就是说,您可以执行以下操作:启动一个间隔,以捕获缓存的] x | y [坐标(按2)。启动一个间隔,以捕获] x | y [坐标。 现在测试最近k个捕获到的坐标的异常值(适用于发生跳跃(滞后)的情况)并插值跳跃。进阶建议:n是插值度。通常,对于您的应用,介于[4 | 7]之间的值是合适的。至于离群值检测,建议对离群值或 Stahel-Donoho离群值使用基本的 Grubbs测试。关于javascript - 如何通过onMouseMove防止对象运动的跳跃?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15970881/
10-11 08:21