let forarray = ["6","-16","13","-20","-23","9"];
elem.style.transform = `translate(${forarray[1]}%,${forarray[1]}%)`;
`width: ${value}px`;
function getObjectId(id, listQuestion) {
let returnValue = '';
for ( let question of listQuestion ) {
if ( question.id === id ) return question;
if ( question.ifQ ) {
for ( let answer of question.answer ) {
returnValue = getObjectId(id, answer.children);
if ( !!returnValue ) return returnValue;
}
}
}
}
onrendered: function() {
// Поиск всех label
d3.selectAll(".c3-chart-arc text").each(function(v) {
// Получение label
let label = d3.select(this),
// Получение координат label (По дефолту label находится в середине доли, вот эти нам
// координаты и нужны)
matrix = label._groups[0][0].transform.animVal[0].matrix;
let x = matrix.e,
y = matrix.f;
// Ну тут вычисления :)
let h = Math.sqrt(x*x + y*y);
// 414/414 - ширина и высота svg
// 15 - отступ от доли
let labelr = Math.min(414, 414) / 2 + 15;
// Тут я поясню только за labelr, так как не шарю за формулы, labelr - расстояние от
// середины графика до конечного положения, с выбранным отступом от доли
label.attr("transform", "translate("+ (x/h * labelr) + ',' + (y/h * labelr) +")");
});
}