【发布时间】:2022-01-01 07:13:42
【问题描述】:
我遇到了一些奇怪的事情,但我不确定这是故意的还是导致它的原因。
我正在试验一些 JavaScript,当用户在屏幕上移动鼠标时循环一组图像。我为此使用 jQuery mousemove。这是一个小提琴:https://jsfiddle.net/sy35dzeh/1/
我遇到的行为是鼠标移动时的某种油门。我希望移动每个像素以增加 pixelCount 变量。但是,在较长的扫描中移动鼠标时,似乎迭代达到了极限。这会导致在缓慢移动鼠标时计数器增加得更快,因为每次添加的“像素”更多。我知道这可能是mousemove 的工作方式,但最重要的是,它在打开开发者工具时表现不同。
当我在 Chrome 中打开开发者工具并尝试再次移动鼠标时,迭代速度要快得多。这是我想要的行为,当鼠标移动较慢时迭代变慢,而鼠标移动得更快时迭代变快。
这里有一段视频说明了不同之处: https://streamable.com/okqql3
知道为什么我打开控制台时它会有所不同吗?知道如何让鼠标移动以我希望的方式影响迭代(比如打开开发者工具时)?
【问题讨论】:
-
如果您从图片中完全删除 jquery,我希望它更准确为 example here
-
使用 vanilla JavaScript 后仍然有相同的行为:jsfiddle.net/jgzkt5b6
-
哦,对不起,我之前快速阅读了您的问题!你说的是坐标跳跃!这是设计上的硬件限制,您需要改用something like this。很抱歉!
-
别担心!我可以想象这是“按设计”完成的事情,或者至少是由
mousemove事件的限制引起的。然而奇怪的是,当打开开发人员工具时,鼠标并没有跳过,至少没有跳过那么多。您发送的链接适用于 C#。但也许在 JavaScript 中有类似的方法可以做到这一点。 -
啊,对不起,哈哈,今天的多任务处理太多了,基本上它只是没有足够快地报告它,所以如果你移动它的速度足够快,你就会错过更新的值,因为它没有足够快地发出更新的值因为在事件冒泡的时候,坐标可能已经改变了。特别是在 javascript 浏览器级别。对于使用 javascript UIEvent 界面的那个问题,我没有答案。
标签: javascript