为什么文本没有出现在svg矩形中?
Why does the text not appear inside the svg rects
我有以下代码:
//############# SQUARES ###################
function addSquares() {
var dta = [10, 100, 1000];
var basics = squaresBasics();
var margin = basics.margin,
width = basics.width,
height = basics.height;
//Create SVG element
var SQsvg = d3.select("#threeSquares")
.append("svg")
.attr({
"width": width + margin.left + margin.right,
"height": height + margin.top + margin.bottom,
id: "squaresArea"
});
var SQg = SQsvg
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
SQg.selectAll("rect")
.data(dta)
.enter()
.append("rect")
.attr({
x: margin.left,
y: function(d, i) {
return i * 65
},
"width": width,
"height": 50,
fill: "blue"
})
.on("click", up);
SQg.selectAll("text")
.data(dta)
.enter()
.append("text")
.text("foobar")
.attr({
x: margin.left,
y: function(d, i) {
return i * 65
},
"font-family": "sans-serif",
"font-size": "20px",
fill: "white"
});
}
addSquares();
只是想知道为什么文本"foobar"不出现在正方形内?
我这里有一个工作的例子:http://plnkr.co/edit/ehFOGfIYbtTX7RxQIGef?p=preview
- 你的第一个问题,在浏览器的错误控制台中可见的是函数up没有定义 第二,文字太高。y坐标指定文本的底部,因此它位于矩形的上方。
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Axis Testing</title>
<script src="https://d3js.org/d3.v2.js"></script>
<style type="text/css">
#threeSquares {
position: absolute;
top: 10px;
left: 10px;
width: 70px;
height: 250px;
}
#barChart {
position: absolute;
top: 10px;
left: 80px;
height: 250px;
}
</style>
</head>
<body>
<div id="threeSquares"></div>
<div id="barChart"></div>
<script type="text/javascript">
function squaresBasics() {
var margin = {
top: 35,
right: 5,
bottom: 5,
left: 5
},
width = 70 - margin.left - margin.right,
height = 250 - margin.top - margin.bottom;
return {
margin: margin,
width: width,
height: height
};
}
//############# SQUARES ###################
function addSquares() {
var dta = [10, 100, 1000];
var basics = squaresBasics();
var margin = basics.margin,
width = basics.width,
height = basics.height;
//Create SVG element
var SQsvg = d3.select("#threeSquares")
.append("svg")
.attr({
"width": width + margin.left + margin.right,
"height": height + margin.top + margin.bottom,
id: "squaresArea"
});
var SQg = SQsvg
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
SQg.selectAll("rect")
.data(dta)
.enter()
.append("rect")
.attr({
x: margin.left,
y: function(d, i) {
return i * 65
},
"width": width,
"height": 50,
fill: "blue"
});
SQg.selectAll("text")
.data(dta)
.enter()
.append("text")
.text("foobar")
.attr({
x: margin.left,
y: function(d, i) {
return i * 65 + 30
},
"font-family": "sans-serif",
"font-size": "20px",
fill: "white"
});
}
addSquares();
</script>
</body>
</html>
相关文章:
- 通过键盘编写SVG文本
- 将指针事件限制为SVG文本填充
- 如何添加 SVG 文本标记 从 JavaScript 函数返回的值
- 如何在javascript中使用svg文本标签
- 在鼠标悬停d3js上更改SVG文本的文本
- 使用d3.js删除svg文本元素
- 用javascript获取svg文本值
- svg文本居中异常
- 用逗号增加svg文本
- SVG文本锚点设置使文本元素移动
- Svg文本元素被另一个Svg元素重叠
- D3.js-围绕一个点旋转svg文本
- 如何查找 SVG 文本位置
- SVG 文本路径 - 动画开始偏移量(文本向下滑动 SVG 路径) - 在 JS 中
- 递增 SVG 文本区域中的 % 值
- 如何在javascript中换行svg文本
- 避免在拖动时跳转带有文本锚点的 SVG 文本
- D3JS SVG 文本和形状在同一行上
- 将省略号放在反应 svg 文本组件上
- 允许 SVG 文本在角度中可编辑