相关疑难解决方法(0)

为什么我不能可靠地捕获mouseout事件?

我需要知道鼠标光标何时离开div.所以我联系了这个mouseout活动.但是,如果我将鼠标快速移出div,则mouseout事件不会触发.这是正确的:鼠标光标是坐以待毙里面div,它现在是外面的div,然而在mouseout回调没有被调用.(如果我不快速移动鼠标,它可以正常工作.)

在最新的谷歌浏览器中也是如此- 所以不仅仅是"旧浏览器"问题.

解决方法:

之前提出过关于这个问题的问题.显然这只是生活中的事实,我发现的唯一解决方法是手动监控mousemove事件,每次检查光标的x/y坐标并查看它们是否属于div边界框,这样你就有更多的机会如果光标不在其中,则"注意".

与让浏览器本地完成所有这些操作相比,对每个像素移动执行计算有点受到性能影响.编码也很繁琐.

关于我的问题......

为什么浏览器无法可靠地捕获mouseout事件?如果我可以可靠地判断鼠标何时离开div使用上述解决方法,为什么浏览器不能这样做呢?

我理解(从上面链接的答案)JavaScript不会尝试插入"框架".假如你在mousemove处理器上放置一个处理程序document,并在完美的水平线上快速将鼠标向右移动200个像素,则可能无法获得200个mousemove事件.一些将被遗漏.我没有问题.

但是如果在鼠标越过边界时错过了一些像素移动div,为什么mouseout还要跳过该事件呢?当浏览器最终再次开始注册鼠标的位置时(在突然快速移动之后),即使鼠标现在在盒子外面数英里,关键是它曾经在盒子中而不再是.那么为什么它不会发射mouseout事件呢?

我只是不明白为什么这对浏览器供应商来说是个难题.(但我相信可能有一个很好的理由,我觉得这太愚蠢了.)

我发布这个问题主要是出于好奇,但我希望答案可以提供一些有助于我更有效地解决问题的见解.此外,任何替代解决方案(比上面提到的更快)都是受欢迎的.

javascript javascript-events

44
推荐指数
2
解决办法
1万
查看次数

如何正确添加和使用D3事件?

我无法理解使用D3事件和调度功能.我有一个我一直在研究的图表示例:" 带有图例的垂直条形图".

绘制图表和图例很容易,但我想添加突出显示每个栏的功能,因为我将鼠标悬停在位于图表右侧的相关文本图例上.

我已经阅读了所有的事件文档,甚至看了很多例子,其中大部分都很复杂,但我似乎错过了一些东西.有谁知道如何最好地完成文本图例鼠标悬停功能,调度事件以自动更改相应垂直条的颜色?

events dispatch d3.js

32
推荐指数
2
解决办法
5万
查看次数

标签 统计

d3.js ×1

dispatch ×1

events ×1

javascript ×1

javascript-events ×1