Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mouseover和mouseout活动获胜';当鼠标移动太快时不会触发?_Javascript_Jquery_Dom_Dom Events - Fatal编程技术网

Javascript Mouseover和mouseout活动获胜';当鼠标移动太快时不会触发?

Javascript Mouseover和mouseout活动获胜';当鼠标移动太快时不会触发?,javascript,jquery,dom,dom-events,Javascript,Jquery,Dom,Dom Events,我写了一个现场演示来展示这个问题: 如果在蓝色、红色和绿色区域之间快速移动鼠标,您将看到红色“y”日志不会出现在x和z日志之间,这意味着您无法获取红色区域鼠标事件 这就是我想要的: 但当鼠标移动太快时: 我只是想知道有没有一种方法,无论我移动鼠标的速度有多快,第一张图像的结果总是一样的?它不会丢失。它来来去去去,但你看不见,因为你移动鼠标太快了。在你的例子中,它并没有丢失 它不会迷路。它来来去去去,但你看不见,因为你移动鼠标太快了。在你的例子中,它并没有丢失 这里的问题很简单 事件本身并没

我写了一个现场演示来展示这个问题:

如果在蓝色、红色和绿色区域之间快速移动鼠标,您将看到红色“y”日志不会出现在x和z日志之间,这意味着您无法获取红色区域鼠标事件

这就是我想要的:

但当鼠标移动太快时:


我只是想知道有没有一种方法,无论我移动鼠标的速度有多快,第一张图像的结果总是一样的?

它不会丢失。它来来去去去,但你看不见,因为你移动鼠标太快了。在你的例子中,它并没有丢失

它不会迷路。它来来去去去,但你看不见,因为你移动鼠标太快了。在你的例子中,它并没有丢失

这里的问题很简单


事件本身并没有“丢失”。它们从一开始就不会真正触发:由于传输速度的原因,浏览器在任何时候都不会将指针视为“结束”。如果是这样,那么它也不能触发“out”,因为它从一开始就没有被视为“in”。

这里的问题很简单


事件本身并没有“丢失”。它们从一开始就不会真正触发:由于传输速度的原因,浏览器在任何时候都不会将指针视为“结束”。如果是这种情况,那么它也不能触发“out”,因为它从一开始就没有被视为“in”。

我不能完全确定它是否会影响javascript,但不同的鼠标有不同的轮询速率(以Hz为单位),如果你的鼠标是1000hz,并且你以恒定的速度移动1000px,你应该拾取每个像素

然而,在现实中,我们移动鼠标非常快,以开始和减慢,因为我们接近一个目标,以提高准确性。这意味着前700ish像素的移动速度将超过700hz的轮询速度,因此,当鼠标在1hz内移动超过1px时,将丢失值

这有点像是一个简单的版本(主要是因为我不知道它的一切),但基本上小的命中目标很容易被鼠标移动事件错过


您可以尝试将目标区域变大,但它仍然无法解决所有问题:)

我不能完全确定它是否会影响javascript,但不同的鼠标具有不同的轮询速率(以Hz为单位),如果您的鼠标为1000hz,并且您以恒定速度移动1000px,则应该拾取每个像素

然而,在现实中,我们移动鼠标非常快,以开始和减慢,因为我们接近一个目标,以提高准确性。这意味着前700ish像素的移动速度将超过700hz的轮询速度,因此,当鼠标在1hz内移动超过1px时,将丢失值

这有点像是一个简单的版本(主要是因为我不知道它的一切),但基本上小的命中目标很容易被鼠标移动事件错过



您可以尝试将目标区域变大,但它仍然无法解决所有问题:)

调用执行时间过长的回调可能会导致浏览器跳过轮询,直到下一次轮询(您是否见过
[Violation]'message'处理程序占用326ms
控制台消息?)。您正在使用jQuery附加事件处理程序(我对jQuery了解不多),因此事件处理程序可能不是被动的。

调用执行时间过长的回调可能会导致浏览器跳过轮询,直到下一次轮询(您是否见过
[违规]“消息”处理程序使用326ms
控制台消息?)。您正在使用jQuery附加事件处理程序(我对jQuery了解不多),因此事件处理程序可能不是被动的。

因此,无法避免这种意外行为?如果不更改代码的其他部分,就无法避免这种情况-例如,如果用户在X中,则扩展Y以同时覆盖Z,当Y:悬停被击中时,只会将鼠标再次缩小。正如@simey.me所说,我想我可以使用开始和结束状态来预测鼠标一定经过了什么地方。@YadSmood使用我的l33t hacz0r技能,我只是将鼠标从X侧移出,向下移动,然后在与Z并排时再次移动鼠标;我没有看Y。你是在看“鼠标移动Y”事件还是“从X移动到Z”事件?@YadSmood,@Adrian-你可以把它们结合起来。如果你没有检测到红色的事件,那么回到我描述的“最佳猜测”方法:)那么,没有办法避免这种意外行为吗?如果不改变代码的其他部分,就没有办法避免这种情况-例如,如果用户在X中,那么扩展Y以覆盖Z,当Y:悬停被击中时,只会将鼠标再次缩小。正如@simey.me所说,我想我可以使用开始和结束状态来预测鼠标一定经过了什么地方。@YadSmood使用我的l33t hacz0r技能,我只是将鼠标从X侧移出,向下移动,然后在与Z并排时再次移动鼠标;我没有看Y。你是在看“鼠标移动Y”事件还是“从X移动到Z”事件?@YadSmood,@Adrian-你可以把它们结合起来。如果你没有检测到红色的事件,那么回到我描述的“最佳猜测”方法:)请看我新添加的图像,问题确实发生了。我只是想知道有没有一种方法,无论我移动鼠标的速度有多快,第一张图片的结果都是一样的。请看我新添加的图片,问题确实发生了。我只是想知道有没有一种方法,不管我移动鼠标的速度有多快,第一张图片的结果总是一样的;请一位或多位落选的选民添加一条评论,解释他们的决定,并就如何改进这个问题提出建议?@AdrianWragg我也不知道为什么我的问题是-5。无论如何,我把题目改成了一个更合适的题目。我不太清楚为什么这个问题是-5;请