Ответ 1
D3 предоставляет transform()
функцию именно для этой цели:
var t = d3.transform(d3.select('.x.axis').attr("transform")),
x = t.translate[0],
y = t.translate[1];
Я пытаюсь получить значения для перевода элемента.
Например, если я выбираю ось x:
d3.select('.x.axis').attr("transform")
то я получаю
"translate(0,112)"
Как мне получить 0
и 112
без разбора регулярного выражения?
Я пытаюсь сделать это, чтобы добавить значение. В псевдокоде:
d3.selectAll('.x.axis').attr('transform', 'translate('
.attr('transform').match(/(\d+)(\.\d+)?/g)[0] // <-- clearly won't work
+ additional_value
+ ', 0)');
D3 предоставляет transform()
функцию именно для этой цели:
var t = d3.transform(d3.select('.x.axis').attr("transform")),
x = t.translate[0],
y = t.translate[1];
если вы хотите использовать selectAll, вы можете попробовать что-то вроде этого:
// move ticks to the center of the x-axis
var transform;
d3.selectAll('.tick').attr('transform', function(){
transform = d3.transform(d3.select(this).attr("transform"));
return "translate("+transform.translate[0]+", -3)";
});