2015-11-04 372 views
3

我想在SVG中为两行添加简单的悬停文本。我在下面的代码中将它作为'标题'包含进来,但是当我将鼠标悬停在任意一行上时,没有任何反应。由于它们交叉,所以当你将鼠标悬停在十字路口上时,我不会特别在意它说的是什么。在svg中添加悬停工具提示行

<!DOCTYPE html> 
<html lang="en"> 

<head> 
    <meta charset="utf-8" /> 
    <script data-require="[email protected]" data-semver="3.5.3" src="//cdnjs.cloudflare.com/ajax/libs/d3/3.5.3/d3.js"></script> 
    <style type="text/css"> 
    </style> 
</head> 

<body> 
    <script type="text/javascript"> 
    //Width and height 
    var w = 500; 
    var h = 300; 
    var padding = 30; 


    //Create SVG element 
    var svg = d3.select("body") 
     .append("svg") 
     .attr("width", w) 
     .attr("height", h) 
     .attr("background-color", "green") 

     svg.append("rect") 
     .attr("width", w) 
     .attr("height", h) 
     .attr("fill", "green"); 

     svg.append("line") 
     .attr("x1", 30) 
     .attr("y1", 40) 
     .attr("x2", 80) 
     .attr("y2", 90) 
     .attr("stroke", "blue") 
     .attr("stroke-width", 2) 
     .attr("title", "This is a blue line"); 

     svg.append("line") 
     .attr("x1", 30) 
     .attr("y1", 90) 
     .attr("x2", 80) 
     .attr("y2", 40) 
     .attr("stroke", "red") 
     .attr("stroke-width", 2) 
     .attr("title", "This is a red line"); 

    </script> 
</body> 

</html> 

回答

3

有了SVG,你想要一个标题子元素,而不是标题属性。

svg.append("line") 
    .attr("x1", 30) 
    .attr("y1", 40) 
    .attr("x2", 80) 
    .attr("y2", 90) 
    .attr("stroke", "blue") 
    .attr("stroke-width", 2) 
    .append("title").text("This is a blue line"); 
+0

谢谢!当他们被盘旋时,是否有一种简单的方法可以使线条变成“流行”或“发光”?如果您认为这更合适,我也可以将其作为单独的问题发布。再次感谢你 – garson

+0

没关系,我想通过在悬停上添加不透明类来解决这个问题。再次感谢! – garson