javascript - 工具提示未显示在图表中
问题描述
我定义了工具提示:
var tooltip = d3.select(TARGET_ELEMENT).append("div")
.attr("class", "tooltip")
.style("opacity", 50)
.attr("style", "position: absolute; pointer-events: none; background: lightsteelblue; width:200px; height:28px;");
然后像我在各种示例中看到的那样使用它:
g.selectAll("dot")
.data(Dataset)
.enter().append("circle")
.attr("r", 3)
.attr("cx", function(d) { return xScale(d.date); })
.attr("cy", function(d) { return yS(d.value[a]); })
.on("mouseover", function(d) {
tooltip.transition()
.duration(200)
.style("opacity", .9);
tooltip.html(d["date"] + "<br/> (" +"TEST"+ ")")
.style("left", (d3.event.pageX + 5) + "px")
.style("top", (d3.event.pageY - 28) + "px");
})
.on("mouseout", function(d) {
tooltip.transition()
.duration(500)
.style("opacity", 0);
});
然而,什么都没有出现。控制台中没有错误。我验证了“鼠标悬停”被正确调用但就是这样。这段代码有什么问题?
解决方案
我假设您使用的是 d3 v4/v5。只需将工具提示更改为:
var tooltip = d3.select("#target").select(".tooltip").data([0]);
tooltip = tooltip.enter().append("div")
.attr("class", "tooltip")
.merge(tooltip)
.style("opacity", 50)
.attr("style", "position: absolute; pointer-events: none; background:lightsteelblue; width:200px;height:28px;")
您可以在此处了解 d3 一般更新模式。
我还为此创建了一个简单的小提琴。
推荐阅读
- c++ - 如何使用模板创建多维 std::array?
- python - 根据 Django Rest 中的数据创建序列化器字段
- javascript - 我可以在非 React 组件文件/API js 文件中使用上下文中的值吗?
- c++ - 如何在 C++ 中使作用域变量成为全局变量?
- kendo-ui - 自定义验证在 Kendo 的 CheckBox 列上没有按预期工作,为什么?
- r - 从不同压力水平的 HDF 中提取数据
- python - 搜索并替换为带有标题和尾部的正则表达式
- javascript - 如何为“材料表”中的替代行添加行样式?
- windows - windows服务powershell的.exe权限
- javascript - ESLint 依赖失败