我的文字很长。它的文字是动态的,可以是短的。如何通过超出包含它的文本标记的宽度使文本保持在另一行?我还想知道如何将边框样式应用于rect标签。
感谢
https://jsfiddle.net/yftfy15q/
var svg = d3.select("body").append("svg");
var groupTooltip = svg.append("g")
var rect = groupTooltip.append('rect')
.attr('width', 300)
.attr('height', 100)
.style('fill', 'white')
.attr('class','myclass')
.attr('stroke', 'black');
var text = groupTooltip.append('text').text('This is some information XDDDDDDDDDSSSSSSSSS XDDDD XDDDDDDDDDDDDDDDDDD')
.attr('width', 100)
.attr('x', 120)
.attr('y', 30)
.attr('id', 'tooltip_text')
var image = groupTooltip.append('image')
.attr("x", 4)
.attr('width', 100)
.attr('height', 100)
.attr('id', 'tooltip_image')
.attr('xlink:href', 'https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png')
答案 0 :(得分:1)
您可以将文字拆分为特定限制,然后将其附加到tspan
内。
在这里,我将文字限制为18
并将每个文本附加到tspan
内,并相应地定位每个文字。
var texts="This is some information XDDDDDDDDDSSSSSSSSS XDDDD XDDDDDDDDDDDDDDDDDD";
var list=[];
list=texts.match(/.{1,18}/g);
var text = groupTooltip.append('text')
.attr('width', 100)
.attr('x', 120)
.attr('y', 30)
.attr('id', 'tooltip_text')
for (i = 0; i < list.length; i++) {
groupTooltip.select("text").append("tspan")
.text(list[i])
.attr("dy", i ? "1.2em" : 0)
.attr("x", 110)
.attr("text-anchor", "left")
.attr("class", "tspan" + i);
}
text
元素可以安排在任意数量的子组中tspan
元素。每个tspan
元素都可以包含不同的格式和 位置。
var svg = d3.select("body").append("svg");
var groupTooltip = svg.append("g")
var rect = groupTooltip.append('rect')
.attr('width', 300)
.attr('height', 100)
.style('fill', 'white')
.attr('class','myclass')
.attr('stroke', 'black');
var texts="This is some information XDDDDDDDDDSSSSSSSSS XDDDD XDDDDDDDDDDDDDDDDDD";
var list=[];
list=texts.match(/.{1,18}/g);
var text = groupTooltip.append('text')
.attr('width', 100)
.attr('x', 120)
.attr('y', 30)
.attr('id', 'tooltip_text')
for (i = 0; i < list.length; i++) {
groupTooltip.select("text").append("tspan")
.text(list[i])
.attr("dy", i ? "1.2em" : 0)
.attr("x", 110)
.attr("text-anchor", "left")
.attr("class", "tspan" + i);
}
var image = groupTooltip.append('image')
.attr("x", 4)
.attr('width', 100)
.attr('height', 100)
.attr('id', 'tooltip_image')
.attr('xlink:href', 'https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png')
&#13;
.myclass{
stroke: blue;
rx: 12;
ry: 12;
}
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.js"></script>
&#13;