1

例如,当使用 jquery ui 可拖动 ( http://jqueryui.com/draggable/ ) 时,对象跟随鼠标而不是随鼠标移动。位置上似乎存在一帧差异。

这是为什么?有没有办法解决这个问题?

4

2 回答 2

2

动画正在追逐鼠标的移动,因为它必须等待mousemove事件

而且,虽然在您移动鼠标指针时事件会很快触发,但在指针实际移动后它仍然会触发。因此,如果盒子仍在运动中,盒子的位置总是会更新到指针所在的位置。

该事件也将受到(大部分)JavaScript 单线程的限制。如果引擎很忙,包括先前的事件触发器,则最近的触发器将不得不等待引擎再次变为空闲状态。

并且,将这些触发器计为frames,jQuery 还使用了缓动,因此当有不规则间隔的frames时,框的位置不会奇怪地跳来跳去。

于 2013-07-29T19:16:34.890 回答
0

您可以尝试构建一个更高效的功能,但这或多或少取决于浏览器和系统。如果您的浏览器和/或系统速度很慢,那么您在拖动或跟随鼠标时会遇到延迟。

您提供的链接我没有遇到任何延迟。

于 2013-07-29T18:57:01.310 回答