我在SVG地图上有一个圆形针。 SVG位于div“位置图”内,溢出:隐藏。 SVG维度大于div维度。
<div class="location-map">
<svg></svg>
</div>
svg.selectAll(".pin")
.data(places)
.enter().append("circle", ".pin")
.attr("r", 5)
.attr("fill", "#fff")
.attr("transform", function(d) {
return "translate(" + projection([
d.location.longitude,
d.location.latitude
]) + ")";
});
我想获得SVG上的圆形针位置,这样我就可以在div内重新定位SVG,并使用负边距使圆形针脚水平和垂直居中显示在div上。
如何获得圆形针的x,y位置?
答案 0 :(得分:0)
SVGCircle有cx
和cy
属性,代表centerX和centerY。
d3&#39; .attr()
方法也允许获取这些。
var circle = d3.selectAll(".pin");
var x = circle.attr('cx');
var y = circle.attr('cy');
snippet.log('x: '+x);
snippet.log('y: '+y)
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<div class="location-map">
<svg>
<circle class="pin" cx="50" cy="50" r="25"/>
</svg>
</div>
&#13;