在d3js中的svg圆圈内添加svg文本
Adding svg text inside svg circle in d3js
我正试图用d3.js
将文本添加到SVG
中制作的圆圈中
文本未出现在圆圈内。当我检查元素时,我可以看到text元素已经添加到DOM中,所需的文本也已经添加到text元素中,但它没有出现。我做错了什么?
以下是代码。
CreateNode
创建圆形
var Xvalue = 100;
var Yvalue = 100;
$(document).ready(function() {
var graphContainer = d3.select("body").append("svg").attr("width", 500).attr("height", 600).attr("class","graph-container");
var root = CreateNode(1,"root","head","main");
});
function CalculateX(nodeType) {
if(nodeType=="main") {
return(Xvalue+30);
}
}
function CalculateY(nodeType) {
if(nodeType=="main") {
return(Yvalue);
}
}
function CreateNode(nodeId,label,className,nodeType) {
var node = d3.select("svg")
.append("circle")
.attr("cx", CalculateX(nodeType))
.attr("cy", CalculateY(nodeType))
.attr("r",40)
.style("fill","none")
.style("stroke","#ccc")
.attr("nodeId",nodeId)
.attr("class",className);
node = node.append("text")
.attr("x", CalculateX(nodeType))
.attr("y", CalculateY(nodeType))
.attr("text-anchor", "middle")
.style("font-size", "14px")
.attr('fill','#cccccc')
.text(label);
return node;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.0/d3.min.js"></script>
不能将<text>
节点放置在<circle></circle>
节点内。你需要把它们一个接一个地叠起来。可以将<circle>
和<text>
都添加到<g>
元素中。试试这个片段
function CreateNode(nodeId,label,className,nodeType)
{
var node = d3.select("svg").append('g');
node.append("circle")
.attr("cx", CalculateX(nodeType))
.attr("cy", CalculateY(nodeType))
.attr("r",40)
.style("fill","none")
.style("stroke","#ccc")
.attr("nodeId",nodeId)
.attr("class",className);
node.append("text")
.attr("x", CalculateX(nodeType))
.attr("y", CalculateY(nodeType))
.attr("text-anchor", "middle")
.style("font-size", "14px")
.attr('fill','#cccccc')
.text(label);
return node;
}
相关文章:
- 在SVG地图上添加水的渐变,就像在谷歌地图(PHP/JS)中一样
- 将形状/掩码动态添加到内联svg中
- 如何使用javascript添加svg
- 如何在svg元素上添加和删除css类
- 动态创建foreignGroup并将其添加到svg中有什么问题
- 如何添加效果,以便将鼠标悬停在 SVG 元素上使其变大
- 在 <对象> 标记中加载 SVG 时,将侦听器添加到 SVG 卸载事件
- 如何将运动模糊尾巴添加到圆圈中的 svg 元素
- 如何添加 SVG 文本标记 从 JavaScript 函数返回的值
- 是否可以用D3将svg元素添加到开放层映射中
- 添加图像与点svg画布
- 如何在svg中添加围绕整个圆的笔划和旋转圆的动画
- 我可以将页面上已经存在的svg添加到另一个svg中吗
- Snap SVG添加/删除链接属性
- 使用DOM向现有SVG添加SVG元素
- 向SVG添加CSS样式
- 将SVG添加到HTML并处理事件
- 如何动态地向HTML5 SVG添加元素
- 不能使用SVGweb在Internet Explorer中为SVG添加侦听器
- 如何使用纯Javascript向嵌入的SVG添加元素?