【发布时间】:2017-06-08 08:26:07
【问题描述】:
我正在尝试在转换后获取节点的新位置。在这种情况下,我在屏幕上移动一个矩形。我希望能够在另一个上下文中访问矩形上的变换,但这仅显示节点的起始位置。如何获取节点的最终位置?
问题似乎与结合使用transition() 和变换函数(下例中的“myTransform”)有关。我只是不知道发生了什么。
var moveButton = d3.selectAll("#move");
moveButton.on("click", moveBox);
var myTransform = function(d) {
return "translate(" + d.a + "," + d.b + ")";
};
var data = [{
"a": 40,
"b": 40
}];
var box = d3.selectAll("svg")
.append("g")
.selectAll("rect")
.data(data)
.enter()
.append("rect")
.attr("id", "myBox")
.attr("height", "50")
.attr("width", "100")
.attr("fill", "green")
function moveBox(d) {
box = d3.select("#myBox")
.transition()
.attr("transform", myTransform);
// How do I retrieve the transform?
//console.log(box.attr("transform"));
}
<html>
<head>
<script src="https://d3js.org/d3.v3.min.js" charset="utf-8"></script>
</head>
<body>
<form action="move">
<input id="move" name="move" type="button" value="Move" />
</form>
<svg>
</svg>
</body>
</html>
【问题讨论】:
标签: d3.js transform positioning