2016-09-20 1 views
1

Ich versuche, mit d3.js x Anzahl der Rechtecke pro Zeile druckenDrucken x Anzahl von Elementen pro Zeile mit Javascript und d3.js

 var rectangle = svgContainer.selectAll("rect").data(data).enter().append("rect") 
     .attr("x", function(d,i){ return i*5}) 
     .attr("y", function(d,i){ return i+1}) 
     .attr("width", 50) 
     .attr("height", 50) 

Ich weiß, ich brauche das y-Attribut zu ändern, aber ich das Gefühl, ich bin blind Werte zu ändern, bis meine Rechtecke drucken wie

[][][][][][] 
[][][][][][] 
[][][][][][] 

statt

 [[][[][[[][[][[][[] 

oder

 [] 
     [] 
      [] 
      [] 

Kann ich einen Einblick bekommen, wie man mit einer Formel zum Ausdrucken kommt?

Danke

+0

Nicht wirklich wollen, ist es einige positive Ergebnisse zeigten aber er druckt noch alle Rechtecke in 1 Zeile oder mehrere Rechtecke in einem Punkt kämmt. – user1804737

+0

Ja! Das ist, was ich gesucht habe, mit einer leichten Modifikation. Du hast es wahrscheinlich recht leicht erfunden, aber darf ich dich fragen, wie du zu deiner Lösung gekommen bist, damit ich das nächste Mal verstehen kann? – user1804737

+0

Ich beantworte nur diese Art eine Frage [hier] (http://stackoverflow.com/a/39589423/6210816) –

Antwort

1

So etwas ...

var rectangle = svgContainer.selectAll("rect").data(data).enter().append("rect") 
    .attr("x", function(d,i){ return (i%5) * 60}) 
    .attr("y", function(d,i){ return Math.floor(i/5) * 60}) 
    .attr("width", 50) 
    .attr("height", 50) 

Ihre Rects sind Höhe und Breite 50, so sollte der 60 einige Lücken zwischen ihnen gewährleisten. 50 ergibt keine Lücken und weniger als 50 überlappende Rechtecke.

% ist die remainder operator wir den Rest nach der Division durch 5.

+0

Vielen Dank für Ihre Erklärung :) – user1804737

Verwandte Themen