这是一个带有锚点的 SVG 文本:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" style="width:200px;height:200px;">
<text x="50" y="30" fill="red" text-anchor="start">I love SVG</text>
</svg>
现在如果我写一个拖动函数:
var dragMove = function (d,i) {
//d3.select(this).attr("text-anchor", "null"); Does not work
d3.select(this).attr("x", d3.event.x)
.attr("y", d3.event.y);
};
var dragEnd = function (d,i) {
//d3.select(this).attr("text-anchor", "start"); Does not work
};
var drag = d3.behavior.drag()
.on("drag", dragMove)
.on("dragend", dragEnd);
d3.select("svg")
.select("text")
.call(drag);
在您将其拖动到其锚点位置后,它会跳跃。有针对这个的解决方法吗?
我尝试将锚文本设置为空,然后再次重新设置,但这不起作用。我根本不希望拖动的用户体验发生变化。即使拖动完成也不行。
任何想法?
这是 JSFiddle:http: //jsfiddle.net/sewVr/