2016-05-27 7 views
2

Ich habe ein g-Element, das ich versuche, eine Spitze meines Kreiselements zu setzen, indem ich die cx- und cy-Position des Kreises dem Element g gebe. Das funktioniert jedoch nicht, weil das g translate verwendet. Irgendeine Idee, wie man Pixel zum Übersetzen umwandelt?Wie Pixel umwandeln, um Wert in d3 zu übersetzen?

colorPickerX = d3.select(dataPointId).attr("cx"); 
colorPickerY = d3.select(dataPointId).attr("cy"); 
var svg = d3.select("body") 
    .append("svg") 
    .attr("width", 300) 
    .attr("height", 300) 
    .append("g") 
    .attr("transform", "translate("+colorPickerX+","+colorPickerX+")"); \\This is wrong because Cx and Cy are Pixels 
+0

Entfernen Sie einfach "px" von coloxPickerX und colorPickerY, indem Sie Zeichenfolgenfunktionen verwenden. colorPickerX.replace ("px", "") – user3696882

Antwort

1

Tun Sie dies mit parseFloat:

//parseFloat will get the number and ignore the px in the end. 
colorPickerX = parseFloat(d3.select(dataPointId).attr("cx")); 
colorPickerY = parseFloat(d3.select(dataPointId).attr("cy")); 

es dann mit der g-Gruppe zu übersetzen, wie Sie oben tun.