d3如何操纵svg翻译值

时间:2016-02-22 20:34:38

标签: d3.js svg

var g = d3.select("#originalRectElement");
d3.select('#newElem').append('path').attr('transform', g.attr('transform'));

这里我正在创建一个新的“路径”并从#originalRectElement设置转换值。

我想在变换值的x轴上添加10px(例如translate(100,100))。如何使用d3.js设置它?

我希望输出为translate(110,100)。如何使用d3.js设置它?

2 个答案:

答案 0 :(得分:1)

使用d3.transform method

var trans = d3.transform(g.attr('transform')).translate;
whatEver.attr('transform', 'translate(' + (trans[0] + 10) + ',' + trans[1] + ')');

答案 1 :(得分:0)

您可以这样继续:

var g = d3.select("#originalRectElement");

d3.select('#newElem').append('path').attr('transform', function() {
    var transform = g.attr('transform');
    var offsets = transform .match(/(\d+)/g); // We grab only the digits    

    return 'translate(' + (offsets[0] + 10) + ',' + offsets[1] + ')'; // Here we add 10 to the x offset
});

这个想法很简单:使用regex抓取x属性中的ytransform值,然后返回新的偏移量。