【发布时间】:2018-10-24 18:19:02
【问题描述】:
我正在尝试在 D3.js 中制作可选择的工具提示
代码如下:
var tooltip = obj.svg
.append('g')
.append('text')
.attr("id", "tooltip")
.text( "SPICE")
.attr("font-family", "sans-serif")
.attr("font-size", "20px")
.attr("fill", "red")
.style("opacity", .0);
...
.on("click", function (d) {
d3.selectAll("#tooltip").transition()
.style("opacity", (obj.tooltipVisible && obj.tooltipId === d.id) ? 0.0 : 1)
因此在浏览器中我有以下元素(我也没有任何 CSS):
<g><text id="tooltip" font-family="sans-serif" font-size="20px" fill="red" x="35" y="11.538461538490488" style="opacity: 1;">SPICE</text></g>
问题是这个文本是无法选择的,通过文本悬停时的指针变化。
那么如何让这个文本元素可以被鼠标选中呢?
如果有意义 - 整个 svg 图片都在这里 - 你可以在左上角看到单词 SPICE,它是不可选择的,我想背景上的文字会阻止当前的文字选择:
【问题讨论】:
-
它对我来说是可选的,尽管如果 opacity:0 你看不到它被选中。如果这是问题,请尝试
fill:rgba(255,0,0,0)而不是opacity:0 -
@enxaneta 不透明度很好,在单击元素之前工具提示是不可见的。但是当点击并可见时 - 问题出现了,我已经在几个浏览器中尝试过。
标签: javascript d3.js svg