我目前正在尝试自定义时间序列图表的示例,该示例位于http://nvd3.com/ghpages/lineWithFocus.html http://nvd3.com/ghpages/lineWithFocus.html。这是使用 d3 之上的库 nvd3 实现的。我希望有数据点的工具提示,如上图所示,但也希望能够在same图表如示例中底部“取景器”图表所示。
为此,我在基本折线图的示例中添加了“画笔”(请参阅http://nvd3.com/ghpages/line.html http://nvd3.com/ghpages/line.html)。范围选择就像一个魅力,但是,数据点的工具提示不再起作用,除了刚刚超出轴范围的点。看起来,位于画笔区域的数据点不再获得鼠标事件,并且画笔吸收了所有这些事件。
需要更改哪些线的数据点接收鼠标事件(特别是鼠标悬停,我不关心单击)?
尝试使用以下方法捕获所有事件
d3.select(window).on("...", function)
然后在数据点上触发一些“鼠标悬停”事件(如果适用)。这是如何实现的(我不想遍历所有数据点,然后检查哪一个最接近鼠标事件......)?有更直接的方法吗?
如果你愿意检查元件(Chrome) 在“画笔”上的任何位置,您都会注意到在您尝试捕获事件的其他图形元素之后构建的元素。
d3.brush 函数正在创建一个隐藏背景来捕获鼠标事件。
// An invisible, mouseable area for starting a new brush.
bg.enter().append("rect")
.attr("class", "background")
.style("visibility", "hidden")
.style("cursor", "crosshair");
所以解决办法就是调用刷机before绘制数据(线条、路径、散点图圆圈等)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)