【发布时间】:2018-07-21 21:45:10
【问题描述】:
我是 D3 的新手,我正在尝试使用 D3 v5 在矩形内添加文本。我已经为此编写了以下代码。
rootSVG = d3.select('.rootSVG')
.selectAll('rect')
.data(data)
.enter()
.append('g')
.attr('transform', (d, i, elements) => {
return 'translate(0, ' + i * 21 + ')';
});
rootSVG.append('rect')
.attr('height', 20)
.attr('width', 100)
.style('fill', 'green')
.on('mouseover', (d, i, elements) => {
d3.select(elements[i])
.transition()
.duration(500)
.style('fill', 'red');
})
.on('mouseout', (d, i, elements) => {
d3.select(elements[i])
.transition()
.duration(500)
.style('fill', 'green');
});
rootSVG.append('text')
.attr('x', 10)
.text((d, i, elements) => {
return d.name;
});
我在浏览器中得到以下结果。 正如您在上图中看到的,矩形元素放置得很好,但文本元素已关闭。为什么即使他们属于同一组也会发生这种行为?如何确保文本始终保持在矩形内?
JSFiddle https://jsfiddle.net/ysm0hfzn/4/
【问题讨论】:
-
你能把代码上传到jsfiddle吗? jsfiddle.net
-
谢谢,你有css吗?
-
不需要css。只有 Javascript 和 HTML
-
在您上传的 jsfiddle 中,文本位于 rect 元素内的正确位置
标签: javascript html css d3.js svg