鼠标悬停时链接两个元素和双工具提示
Linking two elements on mouseover and dual tooltips
我正在寻找一些关于如何在可视化中获得两个元素的建议,它们由一个共同的数据值链接,同时响应。
这是现在的可视化。http://bl.ocks.org/natemiller/2686e5c0d9a1a4bb0895
请注意,不同颜色的点分别代表2005年(绿色)和2013年(蓝色)的美国50个州,因此每个州都有一个蓝点和一个绿点。我想在这里做两件事。
- 我想能够鼠标悬停在一个蓝点或绿色点上,并有相应的点(对于相同的状态)突出显示。
- 我想要一个工具提示与一些基本数据出现在两个点旁边,提供点特定的数据。
关于上面第一点。现在,当你将鼠标悬停在一个蓝点上时,相应的绿点会被高亮显示,然而,当你将鼠标悬停在一个绿点上时,只有这个点会被高亮显示,而不是它对应的蓝点。我想这是一个简单的修复,但对于我的生活,我不能想出反向引用,所以我得到绿色到蓝色的引用。
关于第二点。现在,在鼠标悬停的点附近会出现一个带有相关信息的工具提示,但我希望在隔年数据的对应点旁边出现一个类似的工具提示,这样就可以更容易地进行跨年的直接比较。我是添加HTML工具提示的新手,所以我不清楚如何做到这一点,并怀疑它可能需要一种添加工具提示的新方法。有什么可以帮助引导我在正确的方向上如何有一个工具提示出现在鼠标悬停的元素和相应的链接元素附近?
1)记住,id是唯一的,你用相同的id创建多个圆圈,使用一个类来代替
circles.attr("class", function(d) { return d.state })
2)你正在创建一个工具提示,如果你想为每一对状态显示一个,创建多个工具提示
假设您做了这些更改,您可以轻松地为每对状态创建多个工具提示
circles.on('mouseover', function (d) {
// selection for 2 states
var states = d3.selectAll('circle.' + d.state)
// code to style those nodes goes here ...
// tooltips for the states
var tooltips = d3.select('svg').selectAll('text.tooltip')
.data(states.data())
// initial styling of the tooltips goes here...
tooltips
.enter()
.append('text')
.attr('class', 'tooltip')
// update
tooltips
.html(function (d) {
// text of the tooltip
return 'something'
})
// positioning, it requires some margin fixes I guess
.attr('x', function (d) { return xScale(d.child_pov) })
.attr('y', function (d) { return yScale(d.non_math_prof) })
})
当触发mouseout事件时,最后删除在鼠标悬停时创建的工具提示
circles.on('mouseout', function (d) {
d3.select('svg').selectAll('text.tooltip').remove()
})
不能有多个具有相同id的元素。使用类.circleHawaii
代替id #circleHawaii
相关文章:
- 两个指令创建新的继承的和隔离的作用域-元素得到哪个
- 如何在jQuery中包装两个元素的组
- JavaScript:当有两个B类元素时,如何在id X中的B类中选择A类
- 无法使以下ng on click outside指令在同一页面上的两个元素上工作
- Jquery:当两个或多个条件为true时,选择一个元素
- 如何按id查找两个类中任一类的子元素
- react-让一个元素返回两个相邻的<tr>标签
- 检查来自不同数组的两个元素的一个属性是否相等
- javascript函数包含两个元素和web音频api
- 如何比较两个字符串并删除jquery中的元素
- 将JQuery单击事件直接指向同一元素的两个
- 如何使用jQuery绕过具有指定类和两个条件的元素的函数
- 使用Javascript匹配两个HTML元素的高度
- 如何在两个动画画布元素之间进行通信
- 如何将日期和时间拆分为两个元素
- 检查最后两个元素
- 如何选择嵌套了两个 .each() 函数的多个元素
- 在两个元素的 onrender 事件之后执行函数
- 检查两个或多个 DOM 元素是否重叠
- 如何在同一个表中显示这两个嵌套ng重复的元素