title
属性によって作成されたツールチップで html をレンダリングできるブラウザを使用しているかどうかはわかりません。私の知る限り、プレーンテキストはツールチップ (つまり、title
属性) にのみ配置できます。クリック可能な HTML ツールチップが必要な場合は、SVG タグとグループを使用して、自分で作成する必要があります。
目的に合わせて分析できるかなり完全な例を次に示します。
<style>
circle { fill: #8ad; }
rect { fill: white; stroke: #eee; }
g.candtip { display: none; }
a:hover g.candtip { display: block; }
g.candtip:hover { display: block; }
</style>
<svg width="600" height="600" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"></svg>
<script type="text/javascript">
var getY = function(d,i) { return 100 + i*100; }
var getTranslate = function(d,i) { return "translate(100,"+getY(d,i)+")"; }
var data = [
{Name: "Uwe Jugel", Twitter: "ubunatic"},
{Name: "Juve", Twitter: "ubunatic"}
]
var canvas = d3.select("svg")
var selection = canvas.selectAll("a").data(data)
var newLinks = selection.enter().append("a")
newLinks
.attr("xlink:target","_blank")
.attr("xlink:href", function(d,i) { return "http://twitter.com/"+d.Twitter; })
newLinks.append("circle")
.attr("cx", 100)
.attr("cy", getY)
.attr("r", 40)
var newTooltips = newLinks.append("g").attr("class", "candtip")
newTooltips.attr("transform", getTranslate );
newTooltips.append("rect")
.attr("x", 0)
.attr("y", 0)
.attr("width", 100)
.attr("height", 30)
newTooltips.append("text")
.attr("x", 30)
.attr("y", 20)
.text( function(d,i) { return d.Name; } )
newTooltips.append("svg:image")
.attr("xlink:href", "https://twitter.com/images/resources/twitter-bird-16x16.png")
.attr("x", 5)
.attr("y", 5)
.attr("width", "16px")
.attr("height", "16px")
</script>
基本的に、ホバー可能circle
およびツールチップ グループを設定しg.candtip
ます。ツールティッピーネスは、単純な:hover
ルールによって行われます。SVG 内のリンクは<a>
+経由で行われxlink:href
ます。すべてのデータは、d3 + d3.style ヘルパー関数によって読み取られ、変換されます。